export interface NativeTerminal { /** Check whether fd is an interactive terminal (Posix.isatty). */ is_tty(fd: number): boolean; /** * Get terminal dimensions via ioctl(TIOCGWINSZ). * Returns [success, rows, cols, xpixel, ypixel]. */ get_size(fd: number): [boolean, number, number, number, number]; /** Enter/leave raw mode via termios (disables line-buffering + echo). */ set_raw_mode(fd: number, enable: boolean): boolean; } export interface NativeResizeWatcherClass { new (): NativeResizeWatcher; } export interface NativeResizeWatcher { /** Start watching SIGWINCH. Idempotent. */ start(): void; connect(signal: 'resized', handler: (obj: NativeResizeWatcher, rows: number, cols: number) => void): number; disconnect(id: number): void; } export interface GjsifyTerminalModule { Terminal: NativeTerminal; ResizeWatcher: NativeResizeWatcherClass; } /** The native GjsifyTerminal module, or null if not installed. */ export declare const nativeTerminal: GjsifyTerminalModule | null; /** Returns true when the GjsifyTerminal native library is available. */ export declare function hasNativeTerminal(): boolean;