import type { OverlayContext } from "../../ui-core/controllers/focus-controller.js"; export declare const COMPOSER_MAX_TEXT_ROWS = 18; export declare const COMPOSER_BORDER_ROWS = 2; /** Directory line rendered above the composer box (inside its allocation). */ export declare const COMPOSER_DIR_ROWS = 1; /** One blank breather row between the chat feed and the composer area. */ export declare const COMPOSER_GAP_ROWS = 1; export declare const OVERLAY_MIN_ROWS = 5; export declare const MAX_TOAST_ROWS = 2; export declare const QUEUE_MAX_ROWS = 5; export declare const PLAN_MIN_ROWS = 5; export declare const PLAN_MAX_ROWS = 14; export declare const PLAN_BORDER_ROWS = 2; export type StatusRowsWanted = 1 | 2 | 3; export interface ChromeOverlayDemand { readonly kind: OverlayContext; readonly rowsWanted: number; } export interface ChromeDemand { readonly rows: number; readonly columns: number; readonly composerTextRows: number; readonly statusRowsWanted: StatusRowsWanted; readonly toastCount: number; readonly queueCount: number; readonly responderVisible: boolean; readonly planVisible: boolean; readonly planRowsWanted: number; readonly overlay: ChromeOverlayDemand | undefined; } export interface ChromeLayout { readonly composer: number; readonly status: number; readonly toast: number; readonly queue: number; readonly responder: number; readonly plan: number; readonly overlay: number; readonly liveTail: number; readonly total: number; readonly degraded: boolean; } export declare function allocateChrome(demand: ChromeDemand): ChromeLayout;