---
agentTools:
  projectIndex: https://docs.rainway.com/llms.txt
---

# Web SDK - OutgoingInput

[Home](https://docs.rainway.com/reference/about) > [@rainway/web](web-sdk) > [OutgoingInput](./web-sdk-outgoinginput)

## OutgoingInput type

An input we're asking to perform in someone's interactive stream.

This is a discriminated union type: match on `type` to distinguish types of input, and then handle the fields of the narrowed type.

See: <https://basarat.gitbook.io/typescript/type-system/discriminated-unions>

<b>Signature:</b>

```typescript
export declare type OutgoingInput = Readonly<({
    type: InputType.Gamepad;
} & IGamepadReport) | ({
    type: InputType.MouseAbsolute;
} & IMouseAbsolute) | ({
    type: InputType.MouseRelative;
} & IMouseRelative) | ({
    type: InputType.MouseClick;
} & IMouseClick) | ({
    type: InputType.MouseScroll;
} & IMouseScroll) | {
    type: InputType.Keyboard;
    action: KeyboardAction;
    key: VirtualKey;
} | ({
    type: InputType.PasteText;
} & ILogicalInput) | ({
    type: InputType.TouchesAbsolute;
} & ITouchesAbsolute) | ({
    type: InputType.PenAbsolute;
} & IPenAbsolute) | ({
    type: InputType.ViewportResize;
} & IViewportResize) | ({
    type: InputType.SetClipboardText;
} & ISetClipboardText)>;
```

<b>References:</b> [InputType.Gamepad](./web-sdk-inputtype), [IGamepadReport](./web-sdk-igamepadreport), [InputType.MouseAbsolute](./web-sdk-inputtype), [IMouseAbsolute](./web-sdk-imouseabsolute), [InputType.MouseRelative](./web-sdk-inputtype), [IMouseRelative](./web-sdk-imouserelative), [InputType.MouseClick](./web-sdk-inputtype), [IMouseClick](./web-sdk-imouseclick), [InputType.MouseScroll](./web-sdk-inputtype), [IMouseScroll](./web-sdk-imousescroll), [InputType.Keyboard](./web-sdk-inputtype), [KeyboardAction](./web-sdk-keyboardaction), [VirtualKey](./web-sdk-virtualkey), [InputType.PasteText](./web-sdk-inputtype), [ILogicalInput](./web-sdk-ilogicalinput), [InputType.TouchesAbsolute](./web-sdk-inputtype), [ITouchesAbsolute](./web-sdk-itouchesabsolute), [InputType.PenAbsolute](./web-sdk-inputtype), [IPenAbsolute](./web-sdk-ipenabsolute), [InputType.ViewportResize](./web-sdk-inputtype), [IViewportResize](./web-sdk-iviewportresize), [InputType.SetClipboardText](./web-sdk-inputtype), [ISetClipboardText](./web-sdk-isetclipboardtext)