import { EventEmitter } from 'events';
import { LayoutConfig, ComponentLayout } from '../types/monitoring';
export interface LayoutManagerOptions {
    layoutsDir?: string;
    autoSave?: boolean;
    enableResponsive?: boolean;
}
export interface TerminalSize {
    width: number;
    height: number;
}
export interface LayoutMetrics {
    totalComponents: number;
    activeComponents: number;
    gridUtilization: number;
    overlappingComponents: ComponentLayout[];
}
export declare class LayoutManager extends EventEmitter {
    private layouts;
    private currentLayoutId;
    private customLayouts;
    private layoutsDir;
    private options;
    private currentTerminalSize;
    constructor(options?: LayoutManagerOptions);
    getAvailableLayouts(): string[];
    getLayout(layoutId: string): LayoutConfig | undefined;
    getCurrentLayout(): LayoutConfig;
    getCurrentLayoutId(): string;
    applyLayout(layoutId: string): Promise<void>;
    createCustomLayout(layout: LayoutConfig): Promise<void>;
    updateCustomLayout(layoutId: string, updates: Partial<LayoutConfig>): Promise<void>;
    deleteCustomLayout(layoutId: string): Promise<void>;
    updateTerminalSize(size: TerminalSize): Promise<void>;
    getLayoutMetrics(layoutId?: string): LayoutMetrics;
    findOverlappingComponents(layout: LayoutConfig): ComponentLayout[];
    optimizeLayout(layout: LayoutConfig): LayoutConfig;
    getCustomLayouts(): LayoutConfig[];
    getBuiltInLayouts(): LayoutConfig[];
    exportLayout(layoutId: string, filePath: string): Promise<void>;
    importLayout(filePath: string): Promise<LayoutConfig>;
    private ensureLayoutsDirectory;
    private loadBuiltInLayouts;
    private loadCustomLayouts;
    private saveCustomLayout;
    private applyLayoutToInterface;
    private applyResponsiveAdjustments;
    private componentsOverlap;
    private calculateGridUtilization;
    private resolveOverlaps;
    private repositionComponent;
    private packComponents;
    private createDefaultLayout;
    private createCompactLayout;
    private createWidescreenLayout;
    private createSingleColumnLayout;
    destroy(): void;
}
export declare const layoutManager: LayoutManager;
//# sourceMappingURL=layout-manager.d.ts.map