# 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.

# This file is automatically generated. DO NOT EDIT!
# Regenerate with: bazel run //rb/lib/selenium/webdriver:bidi-generate

module Selenium
  module WebDriver
    class BiDi
      module Protocol
        class Input < ::Selenium::WebDriver::BiDi::Protocol::Domain
          EVENTS: Hash[Symbol, String]

          POINTER_TYPE: Hash[Symbol, String]

          class ElementOrigin < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader element: ::Selenium::WebDriver::BiDi::Protocol::Script::SharedReference
            def self.new: (?type: String, element: ::Selenium::WebDriver::BiDi::Protocol::Script::SharedReference) -> instance
          end

          class PerformActionsParameters < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader context: String
            attr_reader actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::SourceActions]
            def self.new: (context: String, actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::SourceActions]) -> instance
          end

          class SourceActions < ::Selenium::WebDriver::BiDi::Serialization::Union
          end

          class NoneSourceActions < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader id: String
            attr_reader actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::PauseAction]
            def self.new: (?type: String, id: String, actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::PauseAction]) -> instance
          end

          class KeySourceActions < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader id: String
            attr_reader actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::KeySourceAction]
            def self.new: (?type: String, id: String, actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::KeySourceAction]) -> instance
          end

          class KeySourceAction < ::Selenium::WebDriver::BiDi::Serialization::Union
          end

          class PointerSourceActions < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader id: String
            attr_reader parameters: untyped
            attr_reader actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::PointerSourceAction]
            def self.new: (?type: String, id: String, ?parameters: ::Selenium::WebDriver::BiDi::Protocol::Input::PointerParameters, actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::PointerSourceAction]) -> instance
          end

          class PointerParameters < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader pointer_type: untyped
            def self.new: (?pointer_type: Symbol) -> instance
          end

          class PointerSourceAction < ::Selenium::WebDriver::BiDi::Serialization::Union
          end

          class WheelSourceActions < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader id: String
            attr_reader actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::WheelSourceAction]
            def self.new: (?type: String, id: String, actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::WheelSourceAction]) -> instance
          end

          class WheelSourceAction < ::Selenium::WebDriver::BiDi::Serialization::Union
          end

          class PauseAction < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader duration: untyped
            def self.new: (?type: String, ?duration: Integer) -> instance
          end

          class KeyDownAction < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader value: String
            def self.new: (?type: String, value: String) -> instance
          end

          class KeyUpAction < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader value: String
            def self.new: (?type: String, value: String) -> instance
          end

          class PointerUpAction < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader button: Integer
            def self.new: (?type: String, button: Integer) -> instance
          end

          class PointerDownAction < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader button: Integer
            attr_reader width: untyped
            attr_reader height: untyped
            attr_reader pressure: untyped
            attr_reader tangential_pressure: untyped
            attr_reader twist: untyped
            attr_reader altitude_angle: untyped
            attr_reader azimuth_angle: untyped
            def self.new: (?type: String, button: Integer, ?width: Integer, ?height: Integer, ?pressure: Integer, ?tangential_pressure: Integer, ?twist: Integer, ?altitude_angle: Numeric, ?azimuth_angle: Numeric) -> instance
          end

          class PointerMoveAction < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader x: Numeric
            attr_reader y: Numeric
            attr_reader duration: untyped
            attr_reader origin: untyped
            attr_reader width: untyped
            attr_reader height: untyped
            attr_reader pressure: untyped
            attr_reader tangential_pressure: untyped
            attr_reader twist: untyped
            attr_reader altitude_angle: untyped
            attr_reader azimuth_angle: untyped
            def self.new: (?type: String, x: Numeric, y: Numeric, ?duration: Integer, ?origin: ::Selenium::WebDriver::BiDi::Protocol::Input::Origin, ?width: Integer, ?height: Integer, ?pressure: Integer, ?tangential_pressure: Integer, ?twist: Integer, ?altitude_angle: Numeric, ?azimuth_angle: Numeric) -> instance
          end

          class WheelScrollAction < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader type: String
            attr_reader x: Integer
            attr_reader y: Integer
            attr_reader delta_x: Integer
            attr_reader delta_y: Integer
            attr_reader duration: untyped
            attr_reader origin: untyped
            def self.new: (?type: String, x: Integer, y: Integer, delta_x: Integer, delta_y: Integer, ?duration: Integer, ?origin: ::Selenium::WebDriver::BiDi::Protocol::Input::Origin) -> instance
          end

          class PointerCommonProperties < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader width: untyped
            attr_reader height: untyped
            attr_reader pressure: untyped
            attr_reader tangential_pressure: untyped
            attr_reader twist: untyped
            attr_reader altitude_angle: untyped
            attr_reader azimuth_angle: untyped
            def self.new: (?width: Integer, ?height: Integer, ?pressure: Integer, ?tangential_pressure: Integer, ?twist: Integer, ?altitude_angle: Numeric, ?azimuth_angle: Numeric) -> instance
          end

          class Origin < ::Selenium::WebDriver::BiDi::Serialization::Union
          end

          class ReleaseActionsParameters < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader context: String
            def self.new: (context: String) -> instance
          end

          class SetFilesParameters < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader context: String
            attr_reader element: ::Selenium::WebDriver::BiDi::Protocol::Script::SharedReference
            attr_reader files: Array[String]
            def self.new: (context: String, element: ::Selenium::WebDriver::BiDi::Protocol::Script::SharedReference, files: Array[String]) -> instance
          end

          class FileDialogInfo < ::Selenium::WebDriver::BiDi::Serialization::Record
            attr_reader context: String
            attr_reader user_context: untyped
            attr_reader element: untyped
            attr_reader multiple: bool
            def self.new: (context: String, ?user_context: String, ?element: ::Selenium::WebDriver::BiDi::Protocol::Script::SharedReference, multiple: bool) -> instance
          end

          EVENT_TYPES: Hash[String, untyped]

          def perform_actions: (context: String, actions: Array[::Selenium::WebDriver::BiDi::Protocol::Input::SourceActions]) -> untyped
          def release_actions: (context: String) -> untyped
          def set_files: (context: String, element: ::Selenium::WebDriver::BiDi::Protocol::Script::SharedReference, files: Array[String]) -> untyped
        end
      end
    end
  end
end
