import { type DOMElement } from "ink";
import type { ThinkingLevel } from "@prestyj/ai";
import type { ContextWindowOptions } from "../../core/model-registry.js";
import { type FooterStatusLayoutDecision } from "../components/BackgroundTasksBar.js";
import { type DoneStatus } from "../layout-decisions.js";
interface UseChatLayoutMeasurementsOptions {
    rows: number;
    columns: number;
    backgroundTaskCount: number;
    updatePending: boolean;
    agentRunning: boolean;
    activityPhase: string;
    stallError: unknown;
    doneStatus: DoneStatus | null;
    currentModel: string;
    contextUsed: number;
    contextWindowOptions?: ContextWindowOptions;
    displayedCwd: string;
    gitBranch?: string | null;
    thinkingLevel?: ThinkingLevel;
    exitPending: boolean;
    taskBarExpanded: boolean;
    /** Current LiveToolPanel feed length; the panel renders min(count, 3) rows. */
    liveToolFeedCount: number;
}
interface ChatLayoutMeasurements {
    footerStatusLayout: FooterStatusLayoutDecision;
    activityVisible: boolean;
    stallStatusVisible: boolean;
    doneStatusVisible: boolean;
    statusSlotVisible: boolean;
    mainControlsRef: (node: DOMElement | null) => void;
    measuredLiveAreaRows: number;
    /**
     * Transcript region height for the fullscreen alt-screen viewport. Unlike
     * `measuredLiveAreaRows` (which subtracts a 2-row cushion to keep Ink out of
     * its fullscreen clear path in the legacy scrollback model), the fullscreen
     * viewport intentionally owns the full screen, so this is simply
     * `rows - controlsRows` (floored at MIN_LIVE_AREA_ROWS).
     */
    viewportRows: number;
}
export declare function useChatLayoutMeasurements({ rows, columns, backgroundTaskCount, updatePending, agentRunning, activityPhase, stallError, doneStatus, currentModel, contextUsed, contextWindowOptions, displayedCwd, gitBranch, thinkingLevel, exitPending, taskBarExpanded, liveToolFeedCount, }: UseChatLayoutMeasurementsOptions): ChatLayoutMeasurements;
export {};
//# sourceMappingURL=useChatLayoutMeasurements.d.ts.map