/**
 * MK1 Layout Engine - Pure math, no blessed imports
 *
 * Computes panel rectangles based on canvas size and layout mode.
 * All rectangles are clamped to prevent overflow.
 */
export type LayoutMode = 'wide' | 'standard' | 'stack';
export interface Rect {
    x: number;
    y: number;
    w: number;
    h: number;
}
export interface LayoutSpec {
    mode: LayoutMode;
    reason: string;
    rects: {
        header: Rect;
        posture: Rect;
        resources: Rect;
        assets: Rect;
        operations: Rect;
        network: Rect;
        capabilities: Rect;
        command: Rect;
    };
}
export interface Canvas {
    cols: number;
    rows: number;
}
/**
 * Clamp rectangle to canvas bounds
 * Returns null if clamped size would be invalid
 * - Header/command: minimum w >= 1, h >= 1
 * - Other panels: minimum w >= 3, h >= 3
 */
export declare function clampRect(rect: Rect, canvasCols: number, canvasRows: number, isThin?: boolean): Rect | null;
/**
 * Assert no overflow - throws if any rect exceeds canvas
 */
export declare function assertNoOverflow(spec: LayoutSpec, canvas: Canvas): void;
/**
 * Compute layout - main entry point
 */
export declare function computeLayout(canvas: Canvas): LayoutSpec;
//# sourceMappingURL=layoutEngine.d.ts.map