/**
 * OMK Chat Cockpit — watch/refresh loop and terminal renderer.
 */
import type { TuiRenderMode } from "../../tui/model.js";
import type { CockpitLayout } from "./utils.js";
export type RenderMode = TuiRenderMode;
export declare class CockpitRenderer {
    private readonly frameRenderer;
    mode: RenderMode;
    paused: boolean;
    refreshMs: number;
    showHistory: boolean;
    stopped: boolean;
    resized: boolean;
    height?: number;
    private animFrame;
    private animTimer;
    private keyHandler?;
    private terminalInputState?;
    leftScrollFromBottom: number;
    followTail: boolean;
    leftTranscriptLineCount: number;
    leftTranscriptHeight: number;
    lastLeftLineCount: number;
    lastTranscriptHeight: number;
    currentLayout: CockpitLayout | null;
    private wheelHandler?;
    private mouseModeEnabled;
    constructor(refreshMs: number, height?: number);
    setupKeyboard(): void;
    private handleStdin;
    private handleMouseWheelBeforeComposer;
    private handleTranscriptPagingBeforeComposer;
    private debugInput;
    private debugWheel;
    private enableMouse;
    private disableMouse;
    private wheelTarget;
    private handleWheel;
    requestRender(): void;
    onLeftContentChanged(): void;
    getAnimFrame(): number;
    startAnimation(): void;
    stopAnimation(): void;
    teardown(): void;
    render(frame: string): void;
}
export declare function clearScreen(): void;
export declare function getTerminalWidth(requested?: number): number;
export declare const DEFAULT_COCKPIT_HEIGHT = 32;
export declare const MIN_COCKPIT_HEIGHT = 14;
export declare const MAX_COCKPIT_HEIGHT = 96;
export declare function normalizeCockpitFrameHeight(height?: number): number | undefined;
export declare function normalizeCockpitWatchFrameHeight(height?: number): number;
