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

        EVENTS: Hash[Symbol, String]

        PHASES: Hash[Symbol, String]

        def initialize: (BiDi bidi) -> void

        def add_intercept: (?phases: Array[String], ?contexts: BrowsingContext?, ?url_patterns: String | Array[String]?) -> Hash[String, String]

        def cancel_auth: -> Hash[nil, nil]

        def continue_request: -> Hash[nil, nil]

        def continue_response: -> Hash[nil, nil]

        def continue_without_auth: -> Hash[nil, nil]

        def fail_request: -> Hash[nil, nil]

        def remove_intercept: (String intercept) -> Hash[nil, nil]

        def continue_with_auth: (String request_id, String username, String password) -> Hash[nil, nil]

        def provide_response: -> Hash[nil, nil]

        def set_cache_behavior: (String behavior, Array[BrowsingContext]) -> Hash[nil, nil]

        def on: (Symbol event) { (?) -> untyped } -> Hash[nil, nil]
      end
    end
  end
end
