# Licensed to the Software Freedom Conservancy (SFC) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The SFC licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.


module Selenium
  module WebDriver
    class Network
      @network: BiDi::Network

      @callbacks: Hash[Integer, Hash[String, String]]

      attr_reader callbacks: Hash[Integer, Hash[String, String]]

      attr_reader network: BiDi::Network

      alias bidi network

      # Delegated methods from BiDi::Network
      def continue_with_auth: (*untyped) -> untyped

      def continue_with_request: (*untyped) -> untyped

      def continue_with_response: (*untyped) -> untyped

      def initialize: (Remote::Bridge bridge) -> void

      def remove_handler: (Integer id) -> void

      def clear_handlers: () -> void

      def add_authentication_handler: (?String? username, ?String? password, *String filter, ?pattern_type: Symbol?) { (?) -> untyped } -> Integer

      def add_request_handler: (*String filter, ?pattern_type: Symbol?) ?{ (untyped) -> untyped } -> Integer

      def add_response_handler: (*String filter, ?pattern_type: Symbol?) ?{ (untyped) -> untyped } -> Integer

      private

      def add_handler: (Symbol event_type, String phase, untyped intercept_type, Array[String] filter, ?pattern_type: Symbol?) { (untyped) -> untyped } -> Integer
    end
  end
end
