import { TServiceParams } from "@digital-alchemy/core"; import { ResultPromise } from "execa"; import MuteStream from "mute-stream"; import { Interface } from "readline"; import { ReadStream } from "tty"; export declare function Screen({ terminal, config }: TServiceParams): Promise<{ clear(): void; cursorLeft(amount?: number): void; cursorRight(amount?: number): void; /** * A shotgun attempt at returning the terminal to a normal state */ done(): void; /** * Move the rendering cursor down 1 row */ down(amount?: number): void; /** * Delete line(s) and move cursor up */ eraseLine(amount?: number): void; /** * - Capture the current render content as static content * - Deactivate current keyboard shortcuts * - Nest a new rendering session underneath the current * - DOES NOT DO MULTIPLE LEVELS! * * Intended use case is a dual editor situation. Ex: * * - Editable table cells where the table remains visible * * ---- * * - Implies KeyboardManger#wrap() * - Implies ApplicationManager#wrap() */ footerWrap(callback: () => Promise): Promise; pipe(child: ResultPromise): Promise; print(text: string): void; /** * console.log, with less options */ printLine(line?: unknown): void; /** * Print content to the screen, maintaining an internal log of what happened * so that the content can be redrawn in place clearing out the previous render. */ render(content?: string, ...extra: string[]): Promise; rl: Interface & { input: ReadStream; output: MuteStream; }; /** * Move the rendering cursor up 1 line */ up(amount?: number): void; }>;