export interface KeyEvent {
    name?: string;
    ctrl?: boolean;
    meta?: boolean;
    shift?: boolean;
    sequence?: string;
}
export interface TerminalScreenOptions {
    stdout: NodeJS.WriteStream;
    stdin: NodeJS.ReadStream;
    onKey: (key: KeyEvent) => void;
    onResize: (columns: number, rows: number) => void;
}
export declare class TerminalScreen {
    private readonly stdout;
    private readonly stdin;
    private readonly onKey;
    private readonly onResize;
    private started;
    private stopped;
    private wasRawMode;
    private readonly handleKeypress;
    private readonly handleResize;
    private readonly handleSignal;
    constructor(options: TerminalScreenOptions);
    start(): void;
    paint(rows: string[]): void;
    size(): {
        columns: number;
        rows: number;
    };
    stop(): void;
    private readonly exitRestore;
    private restore;
}
