import type { Frame } from "../frame.js"; import type { OutputTarget } from "./types.js"; type TerminalOutputOptions = { synchronizedOutput?: boolean; manageInterruptSignals?: boolean; }; export declare class TerminalOutput implements OutputTarget { private inAltScreen; private previousGrid; private synchronizedOutput; private manageInterruptSignals; private sigtstpInstalled; private handlersInstalled; private exitHandler; private ignoreSignal; private sigintHandler; private sigtermHandler; private sigtstpHandler; private sigcontHandler; constructor(opts?: TerminalOutputOptions); init(): void; write(frame: Frame, _label?: string): void; destroy(): void; /** Hand the terminal to a child process. The screen is suspended, and the * signals a key in the child would send to this process too are left to * their defaults until `reclaim()`: Ctrl+Z must stop this process along * with the child, or the shell never sees the job stop, and SIGCONT must * not redraw while the child still owns the terminal. Ctrl+C is ignored, * because the child is the one meant to act on it. */ release(): void; /** Take the terminal back after `release()`. */ reclaim(): void; suspend(): void; resume(): void; private removeSignalHandlers; } export {};