/**
 * OverlayManager - Manages terminal overlay rendering with ANSI escape sequences
 * Provides sophisticated overlay composition and rendering capabilities
 */
export interface OverlayRegion {
    content: string;
    height: number;
    priority: number;
}
export interface OverlayLayout {
    regions: {
        status?: OverlayRegion;
        progress?: OverlayRegion;
        hints?: OverlayRegion;
        alerts?: OverlayRegion;
    };
    maxHeight: number;
}
export interface OverlayOptions {
    adaptToTerminalSize: boolean;
    smoothTransitions: boolean;
    preserveCursor: boolean;
}
export declare class OverlayManager {
    private currentLayout;
    private renderedRows;
    private allocatedRows;
    private isVisible;
    private isEnabled;
    private outputGuardCount;
    private writeStream;
    private options;
    private readonly SAVE_CURSOR;
    private readonly RESTORE_CURSOR;
    private readonly CLEAR_LINE;
    private readonly MOVE_TO_COLUMN;
    private readonly MOVE_UP;
    constructor(writeStream: NodeJS.WriteStream, options?: Partial<OverlayOptions>);
    /**
     * Set the overlay layout to render
     */
    setLayout(layout: OverlayLayout | null): void;
    /**
     * Show the overlay if enabled and not in output guard
     */
    show(): void;
    /**
     * Hide the overlay
     */
    hide(): void;
    /**
     * Begin output operation (increments guard counter)
     */
    beginOutput(): void;
    /**
     * End output operation (decrements guard counter)
     */
    endOutput(): void;
    /**
     * Enable or disable overlay rendering
     */
    setEnabled(enabled: boolean): void;
    /**
     * Update a specific region in the layout
     */
    updateRegion(regionName: keyof OverlayLayout['regions'], region: OverlayRegion | undefined): void;
    /**
     * Compose the overlay content from all regions
     */
    private composeOverlay;
    /**
     * Render the overlay to the terminal
     */
    private render;
    /**
     * Clear the rendered overlay from the terminal
     */
    private clearRenderedOverlay;
    /**
     * Get maximum overlay height based on terminal size
     */
    private getMaxOverlayHeight;
    /**
     * Truncate a line to fit terminal width
     */
    private truncateLine;
    /**
     * Force a refresh of the overlay
     */
    refresh(): void;
    /**
     * Get current overlay state
     */
    getState(): {
        isVisible: boolean;
        isEnabled: boolean;
        renderedRows: number;
        hasLayout: boolean;
    };
    /**
     * Clean up resources
     */
    dispose(): void;
}
//# sourceMappingURL=OverlayManager.d.ts.map