import { IRPCProtocol } from '@opensumi/ide-connection';
import { IExtHostMessage, IExtHostOutput, IExtHostQuickOpen, IExtHostStatusBar, IExtHostTerminal, IExtHostTreeView, IExtHostUrls, IExtHostWindow, IExtHostWindowState, IExtOpenDialogOptions, IExtSaveDialogOptions, IMainThreadWindow } from '../../../common/vscode';
import { IExtHostDecorationsShape } from '../../../common/vscode/decoration';
import * as types from '../../../common/vscode/ext-types';
import { IExtensionDescription } from '../../../common/vscode/extension';
import { ExtensionHostEditorService } from './editor/editor.host';
import { ExtHostWebviewService, ExtHostWebviewViews } from './ext.host.api.webview';
import { ExtHostCustomEditorImpl } from './ext.host.custom-editor';
import { ExtHostEditorTabs } from './ext.host.editor-tabs';
import { ExtHostProgress } from './ext.host.progress';
import { ExtHostTheming } from './ext.host.theming';
import type vscode from 'vscode';
export declare function createWindowApiFactory(extension: IExtensionDescription, extHostEditors: ExtensionHostEditorService, extHostMessage: IExtHostMessage, extHostWebviews: ExtHostWebviewService, extHostWebviewView: ExtHostWebviewViews, extHostTreeView: IExtHostTreeView, extHostWindowState: IExtHostWindowState, extHostDecorations: IExtHostDecorationsShape, extHostStatusBar: IExtHostStatusBar, extHostQuickOpen: IExtHostQuickOpen, extHostOutput: IExtHostOutput, extHostTerminal: IExtHostTerminal, extHostWindow: ExtHostWindow, extHostProgress: ExtHostProgress, extHostUrls: IExtHostUrls, extHostTheming: ExtHostTheming, extHostCustomEditor: ExtHostCustomEditorImpl, extHostEditorTabs: ExtHostEditorTabs): typeof vscode.window;
export declare class ExtHostWindow implements IExtHostWindow {
    protected readonly proxy: IMainThreadWindow;
    private id;
    private _onOpenedResult;
    private _onSavedResult;
    constructor(rpcProtocol: IRPCProtocol);
    openDialog(options: IExtOpenDialogOptions): Promise<types.Uri[] | undefined>;
    showSaveDialog(options: IExtSaveDialogOptions): Promise<types.Uri | undefined>;
    $onOpenDialogResult(id: string, result: types.UriComponents[] | undefined): void;
    $onSaveDialogResult(id: string, result: types.UriComponents | undefined): void;
}
//# sourceMappingURL=ext.host.window.api.impl.d.ts.map