import { LocalzConfig, LocaleFile, ValidationIssue, IssueType } from '../types';
import { EventEmitter } from 'events';
export interface AppState {
    config: LocalzConfig;
    sourceFile?: LocaleFile;
    targetFiles: Map<string, LocaleFile>;
    currentLocale?: string;
    currentKey?: string;
    issues: Map<string, ValidationIssue[]>;
    selectedKeys: Set<string>;
    filter?: IssueType;
    unsavedChanges: boolean;
    isLoading: boolean;
    error?: string;
    focusedPane: 'files' | 'keys' | 'details';
}
export declare class LocalzApp extends EventEmitter {
    private screen;
    private state;
    private initialized;
    private updating;
    private header;
    private footer;
    private mainContainer;
    private filesPane;
    private keysPane;
    private detailsPane;
    private filesList;
    private keysList;
    private detailsText;
    private loadingScreen;
    private helpModal;
    private errorModal;
    constructor(config: LocalzConfig);
    private initializeScreen;
    private createUI;
    private createLayout;
    private createComponents;
    private createMainPanes;
    private createOverlays;
    private setupEventHandlers;
    private setupKeyBindings;
    private selectLocale;
    private selectKey;
    private cycleFocus;
    private updateFocus;
    private toggleSelection;
    private setFilter;
    private clearFilter;
    private refresh;
    private save;
    private updateHeader;
    private updateFooter;
    private updateFilesList;
    private updateKeysList;
    private updateDetails;
    private getFilteredKeys;
    private getKeyIssues;
    private getKeyValue;
    private getIssueCount;
    private showLoading;
    private hideLoading;
    private showHelp;
    private hideModals;
    private showError;
    private handleResize;
    private handleExit;
    private handleFatalError;
    private getHelpContent;
    initialize(sourceFile: LocaleFile, targetFiles: LocaleFile[]): Promise<void>;
    updateIssues(issues: Map<string, ValidationIssue[]>): void;
    render(): void;
    destroy(): void;
}
//# sourceMappingURL=app.d.ts.map