class Selenium::WebDriver::BiDi::Network

def add_intercept(phases: [], contexts: nil, url_patterns: nil, pattern_type: :string)

def add_intercept(phases: [], contexts: nil, url_patterns: nil, pattern_type: :string)
  url_patterns = url_patterns && pattern_type ? UrlPattern.format_pattern(url_patterns, pattern_type) : nil
  @bidi.send_cmd('network.addIntercept',
                 phases: phases,
                 contexts: contexts,
                 urlPatterns: url_patterns)
end

def cancel_auth(request_id)

def cancel_auth(request_id)
  @bidi.send_cmd(
    'network.continueWithAuth',
    request: request_id,
    action: 'cancel'
  )
end

def continue_request(**args)

def continue_request(**args)
  @bidi.send_cmd(
    'network.continueRequest',
    request: args[:id],
    body: args[:body],
    cookies: args[:cookies],
    headers: args[:headers],
    method: args[:method],
    url: args[:url]
  )
end

def continue_response(**args)

def continue_response(**args)
  @bidi.send_cmd(
    'network.continueResponse',
    request: args[:id],
    cookies: args[:cookies],
    credentials: args[:credentials],
    headers: args[:headers],
    reasonPhrase: args[:reason],
    statusCode: args[:status]
  )
end

def continue_with_auth(request_id, username, password)

def continue_with_auth(request_id, username, password)
  @bidi.send_cmd(
    'network.continueWithAuth',
    request: request_id,
    action: 'provideCredentials',
    credentials: {
      type: 'password',
      username: username,
      password: password
    }
  )
end

def continue_without_auth(request_id)

def continue_without_auth(request_id)
  @bidi.send_cmd(
    'network.continueWithAuth',
    request: request_id,
    action: 'default'
  )
end

def fail_request(request_id)

def fail_request(request_id)
  @bidi.send_cmd(
    'network.failRequest',
    request: request_id
  )
end

def initialize(bidi)

def initialize(bidi)
  @bidi = bidi
end

def on(event, &block)

def on(event, &block)
  event = EVENTS[event] if event.is_a?(Symbol)
  @bidi.add_callback(event, &block)
  @bidi.session.subscribe(event)
end

def provide_response(**args)

def provide_response(**args)
  @bidi.send_cmd(
    'network.provideResponse',
    request: args[:id],
    body: args[:body],
    cookies: args[:cookies],
    headers: args[:headers],
    reasonPhrase: args[:reason],
    statusCode: args[:status]
  )
end

def remove_intercept(intercept)

def remove_intercept(intercept)
  @bidi.send_cmd('network.removeIntercept', intercept: intercept)
end

def set_cache_behavior(behavior, *contexts)

def set_cache_behavior(behavior, *contexts)
  @bidi.send_cmd('network.setCacheBehavior', cacheBehavior: behavior, contexts: contexts)
end