import p5 from 'p5'; import { IBlockingOrderedEvent } from './Events'; export type KeyEventSubscriber = (e: KeyboardEvent) => boolean; export type MouseEventSubscriber = (e: MouseEvent) => boolean; export type MouseDragEventSubscriber = (e: DragEvent) => boolean; export type ScrollEventSubscriber = (e: WheelEvent) => boolean; export declare class InputManager { sketch: p5; mousePressedEvent: IBlockingOrderedEvent<[MouseEvent]>; mouseReleasedEvent: IBlockingOrderedEvent<[MouseEvent]>; mouseDraggedEvent: IBlockingOrderedEvent<[DragEvent]>; keyPressedEvent: IBlockingOrderedEvent<[KeyboardEvent]>; keyReleasedEvent: IBlockingOrderedEvent<[KeyboardEvent]>; scrolledEvent: IBlockingOrderedEvent<[WheelEvent]>; constructor(p: p5); subscribeToMousePressed(sub: MouseEventSubscriber, order?: number): () => boolean; subscribeToMouseReleased(sub: MouseEventSubscriber, order?: number): () => boolean; subscribeToMouseDragged(sub: MouseDragEventSubscriber, order?: number): () => boolean; subscribeToKeyPressed(sub: KeyEventSubscriber, order?: number): () => boolean; subscribeToKeyReleased(sub: KeyEventSubscriber, order?: number): () => boolean; subscribeToScrolled(sub: ScrollEventSubscriber, order?: number): () => boolean; onMousePressed(event: MouseEvent): void; onMouseReleased(event: MouseEvent): void; onMouseDragged(event: DragEvent): void; onKeyPressed(event: KeyboardEvent): void; onKeyReleased(event: KeyboardEvent): void; onScroll(event: WheelEvent): void; isKeyDown(code: keyof typeof keyCodeConversions): boolean; setup(): void; mouseIsOutOfBounds(): boolean; } declare const keyCodeConversions: { BACKSPACE: number; TAB: number; ENTER: number; SHIFT: number; CONTROL: number; ALT: number; ESCAPE: number; SPACE: number; ARROWLEFT: number; ARROWUP: number; ARROWRIGHT: number; ARROWDOWN: number; }; export {};