import { Except } from 'type-fest'; import { AllKeyCodes } from './types/keyCodes'; import { ControEvents, CreateControlsSchemaOptions, InputCommandsSchema, InputGroupedCommandsSchema, InputSchemaArg, SchemaCommand } from './types'; import { GamepadButtonName } from './gamepad'; import { UserOverridesConfig } from './types/store'; import { TypedEventEmitter } from './typedEventEmitter'; type MovementVectorType = '2d' | '3d'; export declare class ControMax> extends TypedEventEmitter> { options: CreateControlsSchemaOptions; /** type only @deprecated */ _commandsRaw: D['commands']; inputSchema: Except & { commands: { [G in keyof T]: { [C in keyof T[G]]: SchemaCommand; }; }; }; /** Raw set of all pressed key at the moment */ pressedKeys: ReadonlySet; /** Disable input handling. */ enabled: boolean; userConfig: UserOverridesConfig | undefined; pressedKeyOrButtonChanged: (codeOrButton: { code: AllKeyCodes; } | { gamepadIndex: number; button: GamepadButtonName; }, buttonPressed: boolean, options?: { preventDefault?: (() => void) | undefined; }) => void; private handleMovementKeyInternal; constructor(inputSchema: D, options?: CreateControlsSchemaOptions); trigger(category: T1, command: keyof T[T1]): void; triggerGroupedCommand(category: K1, command: keyof K[K1], indexOrKey: (K[K1] extends [Array, ...any] ? U : string) | number): void; /** * Trigger movement in a specific direction programmatically. * @param direction - Movement direction: 'forward' (or 'up'), 'backward' (or 'down'), 'left', 'right' * @param pressed - true for keydown/press, false for keyup/release */ setMovement(direction: 'forward' | 'backward' | 'left' | 'right' | 'up' | 'down', pressed: boolean): void; } export {};