/**
 * A persistent shell session for the dashboard's web terminal. Spawns an
 * interactive shell on the host the dashboard runs on (in box mode that is the
 * provisioned server, matching Forge's web SSH) and streams its output back
 * through `onData`. Input is written to the shell's stdin.
 *
 * This is a line-oriented shell over pipes, not a full PTY: cwd and environment
 * persist across commands and long-running output streams, but curses-style
 * full-screen programs (vim, htop) are not supported. It is gated behind the
 * dashboard's Basic auth like every other control surface.
 */
export interface TerminalSession {
    /** Write raw input (typically a command line ending in \n) to the shell. */
    write: (data: string) => void;
    /** Terminate the shell and release the streams. */
    close: () => void;
}
export interface TerminalSessionOptions {
    shell?: string;
    cwd?: string;
    onExit?: (code: number | null) => void;
}
export declare function createTerminalSession(onData: (chunk: string) => void, options?: TerminalSessionOptions): TerminalSession;
