/** * 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); /** * 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