func (c *Input) SynthesizeTapGesture(x float64, y float64, duration int, tapCount int, gestureSourceType string) (*gcdmessage.ChromeResponse, error) {
	var v InputSynthesizeTapGestureParams
	v.X = x
	v.Y = y
	v.Duration = duration
	v.TapCount = tapCount
	v.GestureSourceType = gestureSourceType
	return c.SynthesizeTapGestureWithParams(&v)
}
SynthesizeTapGesture - Synthesizes a tap gesture over a time period by issuing appropriate touch events.
x - X coordinate of the start of the gesture in CSS pixels.
y - Y coordinate of the start of the gesture in CSS pixels.
duration - Duration between touchdown and touchup events in ms (default: 50).
tapCount - Number of times to perform the tap (e.g. 2 for double tap, default: 1).
gestureSourceType - Which type of input events to be generated (default: 'default', which queries the platform for the preferred input type). enum values: default, touch, mouse
package gcdapi
import (
	"github.com/wirepair/gcd/gcdmessage"
)
type InputTouchPoint struct {
	X             float64 `json:"x"`                        
	Y             float64 `json:"y"`                        
	RadiusX       float64 `json:"radiusX,omitempty"`        
	RadiusY       float64 `json:"radiusY,omitempty"`        
	RotationAngle float64 `json:"rotationAngle,omitempty"`  
	Force         float64 `json:"force,omitempty"`          
	Id            float64 `json:"id,omitempty"`             
}
type Input struct {
	target gcdmessage.ChromeTargeter
}
func NewInput(target gcdmessage.ChromeTargeter) *Input {
	c := &Input{target: target}
	return c
}
type InputDispatchKeyEventParams struct {
	TheType string `json:"type"`
	Modifiers int `json:"modifiers,omitempty"`
	Timestamp float64 `json:"timestamp,omitempty"`
	Text string `json:"text,omitempty"`
	UnmodifiedText string `json:"unmodifiedText,omitempty"`
	KeyIdentifier string `json:"keyIdentifier,omitempty"`
	Code string `json:"code,omitempty"`
	Key string `json:"key,omitempty"`
	WindowsVirtualKeyCode int `json:"windowsVirtualKeyCode,omitempty"`
	NativeVirtualKeyCode int `json:"nativeVirtualKeyCode,omitempty"`
	AutoRepeat bool `json:"autoRepeat,omitempty"`
	IsKeypad bool `json:"isKeypad,omitempty"`
	IsSystemKey bool `json:"isSystemKey,omitempty"`
	Location int `json:"location,omitempty"`
}
func (c *Input) DispatchKeyEventWithParams(v *InputDispatchKeyEventParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.dispatchKeyEvent", Params: v})
}
func (c *Input) DispatchKeyEvent(theType string, modifiers int, timestamp float64, text string, unmodifiedText string, keyIdentifier string, code string, key string, windowsVirtualKeyCode int, nativeVirtualKeyCode int, autoRepeat bool, isKeypad bool, isSystemKey bool, location int) (*gcdmessage.ChromeResponse, error) {
	var v InputDispatchKeyEventParams
	v.TheType = theType
	v.Modifiers = modifiers
	v.Timestamp = timestamp
	v.Text = text
	v.UnmodifiedText = unmodifiedText
	v.KeyIdentifier = keyIdentifier
	v.Code = code
	v.Key = key
	v.WindowsVirtualKeyCode = windowsVirtualKeyCode
	v.NativeVirtualKeyCode = nativeVirtualKeyCode
	v.AutoRepeat = autoRepeat
	v.IsKeypad = isKeypad
	v.IsSystemKey = isSystemKey
	v.Location = location
	return c.DispatchKeyEventWithParams(&v)
}
type InputInsertTextParams struct {
	Text string `json:"text"`
}
func (c *Input) InsertTextWithParams(v *InputInsertTextParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.insertText", Params: v})
}
func (c *Input) InsertText(text string) (*gcdmessage.ChromeResponse, error) {
	var v InputInsertTextParams
	v.Text = text
	return c.InsertTextWithParams(&v)
}
type InputDispatchMouseEventParams struct {
	TheType string `json:"type"`
	X float64 `json:"x"`
	Y float64 `json:"y"`
	Modifiers int `json:"modifiers,omitempty"`
	Timestamp float64 `json:"timestamp,omitempty"`
	Button string `json:"button,omitempty"`
	ClickCount int `json:"clickCount,omitempty"`
	DeltaX float64 `json:"deltaX,omitempty"`
	DeltaY float64 `json:"deltaY,omitempty"`
}
func (c *Input) DispatchMouseEventWithParams(v *InputDispatchMouseEventParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.dispatchMouseEvent", Params: v})
}
func (c *Input) DispatchMouseEvent(theType string, x float64, y float64, modifiers int, timestamp float64, button string, clickCount int, deltaX float64, deltaY float64) (*gcdmessage.ChromeResponse, error) {
	var v InputDispatchMouseEventParams
	v.TheType = theType
	v.X = x
	v.Y = y
	v.Modifiers = modifiers
	v.Timestamp = timestamp
	v.Button = button
	v.ClickCount = clickCount
	v.DeltaX = deltaX
	v.DeltaY = deltaY
	return c.DispatchMouseEventWithParams(&v)
}
type InputDispatchTouchEventParams struct {
	TheType string `json:"type"`
	TouchPoints []*InputTouchPoint `json:"touchPoints"`
	Modifiers int `json:"modifiers,omitempty"`
	Timestamp float64 `json:"timestamp,omitempty"`
}
func (c *Input) DispatchTouchEventWithParams(v *InputDispatchTouchEventParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.dispatchTouchEvent", Params: v})
}
func (c *Input) DispatchTouchEvent(theType string, touchPoints []*InputTouchPoint, modifiers int, timestamp float64) (*gcdmessage.ChromeResponse, error) {
	var v InputDispatchTouchEventParams
	v.TheType = theType
	v.TouchPoints = touchPoints
	v.Modifiers = modifiers
	v.Timestamp = timestamp
	return c.DispatchTouchEventWithParams(&v)
}
type InputEmulateTouchFromMouseEventParams struct {
	TheType string `json:"type"`
	X int `json:"x"`
	Y int `json:"y"`
	Button string `json:"button"`
	Timestamp float64 `json:"timestamp,omitempty"`
	DeltaX float64 `json:"deltaX,omitempty"`
	DeltaY float64 `json:"deltaY,omitempty"`
	Modifiers int `json:"modifiers,omitempty"`
	ClickCount int `json:"clickCount,omitempty"`
}
func (c *Input) EmulateTouchFromMouseEventWithParams(v *InputEmulateTouchFromMouseEventParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.emulateTouchFromMouseEvent", Params: v})
}
func (c *Input) EmulateTouchFromMouseEvent(theType string, x int, y int, button string, timestamp float64, deltaX float64, deltaY float64, modifiers int, clickCount int) (*gcdmessage.ChromeResponse, error) {
	var v InputEmulateTouchFromMouseEventParams
	v.TheType = theType
	v.X = x
	v.Y = y
	v.Button = button
	v.Timestamp = timestamp
	v.DeltaX = deltaX
	v.DeltaY = deltaY
	v.Modifiers = modifiers
	v.ClickCount = clickCount
	return c.EmulateTouchFromMouseEventWithParams(&v)
}
type InputSetIgnoreInputEventsParams struct {
	Ignore bool `json:"ignore"`
}
func (c *Input) SetIgnoreInputEventsWithParams(v *InputSetIgnoreInputEventsParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.setIgnoreInputEvents", Params: v})
}
func (c *Input) SetIgnoreInputEvents(ignore bool) (*gcdmessage.ChromeResponse, error) {
	var v InputSetIgnoreInputEventsParams
	v.Ignore = ignore
	return c.SetIgnoreInputEventsWithParams(&v)
}
type InputSynthesizePinchGestureParams struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
	ScaleFactor float64 `json:"scaleFactor"`
	RelativeSpeed int `json:"relativeSpeed,omitempty"`
	GestureSourceType string `json:"gestureSourceType,omitempty"`
}
func (c *Input) SynthesizePinchGestureWithParams(v *InputSynthesizePinchGestureParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.synthesizePinchGesture", Params: v})
}
func (c *Input) SynthesizePinchGesture(x float64, y float64, scaleFactor float64, relativeSpeed int, gestureSourceType string) (*gcdmessage.ChromeResponse, error) {
	var v InputSynthesizePinchGestureParams
	v.X = x
	v.Y = y
	v.ScaleFactor = scaleFactor
	v.RelativeSpeed = relativeSpeed
	v.GestureSourceType = gestureSourceType
	return c.SynthesizePinchGestureWithParams(&v)
}
type InputSynthesizeScrollGestureParams struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
	XDistance float64 `json:"xDistance,omitempty"`
	YDistance float64 `json:"yDistance,omitempty"`
	XOverscroll float64 `json:"xOverscroll,omitempty"`
	YOverscroll float64 `json:"yOverscroll,omitempty"`
	PreventFling bool `json:"preventFling,omitempty"`
	Speed int `json:"speed,omitempty"`
	GestureSourceType string `json:"gestureSourceType,omitempty"`
	RepeatCount int `json:"repeatCount,omitempty"`
	RepeatDelayMs int `json:"repeatDelayMs,omitempty"`
	InteractionMarkerName string `json:"interactionMarkerName,omitempty"`
}
func (c *Input) SynthesizeScrollGestureWithParams(v *InputSynthesizeScrollGestureParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.synthesizeScrollGesture", Params: v})
}
func (c *Input) SynthesizeScrollGesture(x float64, y float64, xDistance float64, yDistance float64, xOverscroll float64, yOverscroll float64, preventFling bool, speed int, gestureSourceType string, repeatCount int, repeatDelayMs int, interactionMarkerName string) (*gcdmessage.ChromeResponse, error) {
	var v InputSynthesizeScrollGestureParams
	v.X = x
	v.Y = y
	v.XDistance = xDistance
	v.YDistance = yDistance
	v.XOverscroll = xOverscroll
	v.YOverscroll = yOverscroll
	v.PreventFling = preventFling
	v.Speed = speed
	v.GestureSourceType = gestureSourceType
	v.RepeatCount = repeatCount
	v.RepeatDelayMs = repeatDelayMs
	v.InteractionMarkerName = interactionMarkerName
	return c.SynthesizeScrollGestureWithParams(&v)
}
type InputSynthesizeTapGestureParams struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
	Duration int `json:"duration,omitempty"`
	TapCount int `json:"tapCount,omitempty"`
	GestureSourceType string `json:"gestureSourceType,omitempty"`
}
func (c *Input) SynthesizeTapGestureWithParams(v *InputSynthesizeTapGestureParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "Input.synthesizeTapGesture", Params: v})
}