import { Processor } from './util/runProcessors'; import InputControl from './controls/InputControl'; import EventEmitter from './util/EventEmitter'; type ActionEvents = { update: unknown; change: unknown; enable: unknown; disable: unknown; }; export interface ActionBindOptions { control?: InputControl; processors?: Processor[]; autoUpdate?: boolean; } interface ActionBinding { control: InputControl; processors?: Processor[]; } type Bindings = (InputControl | ActionBindOptions)[]; export interface ActionOptions { bindings?: Bindings; processors?: Processor[]; name?: string; enabled?: boolean; } export default class Action extends EventEmitter { name: string; enabled: boolean; bindings: ActionBinding[]; processors: Processor[]; readonly value: ValueType; readonly activeControl: InputControl; bind: (control: InputControl | ActionBindOptions, options?: ActionBindOptions) => number; unbind: (index: number) => void; update: () => void; constructor(options?: Bindings | ActionOptions); } export {};