/** * input — a parser (a byte-level state machine, ADR-0008) that turns raw stdin * into semantic KeyEvent / MouseEvent / paste events. */ import { type Disposable } from '../events/index.js'; export type Key = string | 'enter' | 'escape' | 'tab' | 'backspace' | 'delete' | 'insert' | 'home' | 'end' | 'pageup' | 'pagedown' | 'up' | 'down' | 'left' | 'right' | 'space'; export interface KeyEvent { readonly key: Key; readonly ctrl: boolean; readonly alt: boolean; readonly shift: boolean; readonly raw: string; } export type MouseButton = 'left' | 'middle' | 'right' | 'wheel-up' | 'wheel-down' | 'none'; export interface MouseEvent { readonly x: number; readonly y: number; readonly button: MouseButton; readonly action: 'press' | 'release' | 'move'; readonly ctrl: boolean; readonly alt: boolean; readonly shift: boolean; } export interface InputManager { onKey(cb: (e: KeyEvent) => void): Disposable; onMouse(cb: (e: MouseEvent) => void): Disposable; onPaste(cb: (text: string) => void): Disposable; start(): void; stop(): void; } export interface InputOptions { readonly escTimeout?: number; readonly mouse?: boolean; } export declare function createInputManager(onData: (cb: (bytes: Buffer) => void) => Disposable, options?: InputOptions): InputManager; //# sourceMappingURL=index.d.ts.map