import { IRPCProtocol } from '@opensumi/ide-connection';
import { IDisposable } from '@opensumi/ide-core-common';
import { IExtHostIDEWindow, IExtPlainWebviewWindow, IIDEWindowWebviewEnv, IIDEWindowWebviewOptions, IMainThreadIDEWindow, IWindowInfo } from '../../../common/sumi/window';
import { IExtHostCommands } from '../../../common/vscode';
export declare class ExtHostIDEWindow implements IExtHostIDEWindow {
    private rpcProtocol;
    private proxy;
    private _windowMaps;
    constructor(rpcProtocol: IRPCProtocol);
    createWebviewWindow(webviewId: string, options?: IIDEWindowWebviewOptions, env?: IIDEWindowWebviewEnv): Promise<ExtIDEWebviewWindow | undefined>;
    $postMessage(webviewId: string, message: any): Promise<void>;
    $dispatchClosed(webviewId: string): Promise<void>;
}
export declare class ExtIDEWebviewWindow implements IExtPlainWebviewWindow {
    private webviewId;
    private info;
    private proxy;
    private _onMessageEmitter;
    private _onClosedEmitter;
    private disposableCollection;
    constructor(webviewId: string, info: IWindowInfo, proxy: IMainThreadIDEWindow, dispose: IDisposable);
    get webContentsId(): number;
    get windowId(): number;
    get onMessage(): import("@opensumi/ide-core-common").Event<any>;
    get onClosed(): import("@opensumi/ide-core-common").Event<void>;
    show(): Promise<void>;
    hide(): Promise<void>;
    postMessage(message: any): Promise<void>;
    loadUrl(url: string): Promise<void>;
    setSize(size: {
        width: number;
        height: number;
    }): Promise<void>;
    setAlwaysOnTop(flag: boolean): Promise<void>;
    dispose(): void;
    dispatchClosed(): Promise<void>;
    dispatchMessage(message: any): Promise<void>;
}
export declare function createWindowApiFactory(extHostCommands: IExtHostCommands, extHostWindow: ExtHostIDEWindow): {
    reloadWindow: () => Promise<unknown>;
    createWebviewWindow: (webviewId: string, options?: IIDEWindowWebviewOptions, env?: IIDEWindowWebviewEnv) => Promise<ExtIDEWebviewWindow | undefined>;
};
//# sourceMappingURL=ext.host.window.d.ts.map