import { ClientAppConfiguration } from "../../../core/@types/global";
import { App, AppEventToken } from "../../../main/electron/app/app";
import { IPCHost } from "../../../main/electron/data/ipcHost";
import { BaseWindowConstructorOptions, BrowserWindow, WebPreferences } from "electron";
export interface WindowConfig extends BaseWindowConstructorOptions {
    isolated: boolean;
    devTools?: boolean;
}
export interface AppWindowConfig {
    preload: string;
}
export declare class AppWindow {
    static readonly DefaultConfig: WindowConfig;
    readonly app: App;
    readonly config: WindowConfig;
    readonly appConfig: AppWindowConfig;
    readonly win: BrowserWindow;
    readonly ipc: IPCHost;
    private events;
    constructor(app: App, config: Partial<WindowConfig>, appConfig: AppWindowConfig);
    getWebPreference(): WebPreferences;
    onClose(fn: () => void): AppEventToken;
    getWebContents(): Electron.WebContents;
    reload(): void;
    onKeyUp(key: KeyboardEvent["key"], fn: () => void): AppEventToken;
    toggleDevTools(): void;
    setIcon(icon: string): void;
    show(): Promise<void>;
    loadURL(url: string): Promise<void>;
    loadFile(file: string): Promise<void>;
    setTitle(title: string): void;
    getTitle(): string;
    getClientAppConfig(): ClientAppConfiguration;
    private prepare;
    private prepareEvents;
    private emit;
    private crashReason;
}
