import { IRPCProtocol } from '@opensumi/ide-connection';
import { CancellationToken, MaybePromise } from '@opensumi/ide-core-common';
import { IExtHostQuickOpen, IExtHostWorkspace, Severity } from '../../../common/vscode';
import type vscode from 'vscode';
export declare class ExtHostQuickOpen implements IExtHostQuickOpen {
    private readonly workspace;
    private _onDidSelectItem?;
    private proxy;
    private validateInputHandler;
    private createdQuicks;
    private createdInputBoxes;
    private currentQuick;
    constructor(rpc: IRPCProtocol, workspace: IExtHostWorkspace);
    showQuickPick(promiseOrItems: vscode.QuickPickItem[] | Promise<vscode.QuickPickItem[]>, options?: vscode.QuickPickOptions | undefined, token?: CancellationToken | undefined): Promise<vscode.QuickPickItem | undefined>;
    showQuickPick(promiseOrItems: vscode.QuickPickItem[] | Promise<vscode.QuickPickItem[]>, options?: (vscode.QuickPickOptions & {
        canSelectMany: true;
    }) | undefined, token?: CancellationToken | undefined): Promise<vscode.QuickPickItem[] | undefined>;
    showQuickPick(promiseOrItems: string[] | Promise<string[]>, options?: vscode.QuickPickOptions | undefined, token?: CancellationToken | undefined): Promise<string | undefined>;
    $onItemSelected(handle: number): void;
    showWorkspaceFolderPick(options: vscode.WorkspaceFolderPickOptions, token?: CancellationToken): Promise<vscode.WorkspaceFolder | undefined>;
    hideQuickPick(): void;
    createQuickPick<T extends vscode.QuickPickItem>(): vscode.QuickPick<T>;
    createInputBox(): vscode.InputBox;
    $onDidChangeValue(sessionId: number, value: string): void;
    $onCreatedInputBoxDidChangeValue(sessionId: number, value: string): void;
    $onCreatedInputBoxDidAccept(sessionId: number): void;
    $onCreatedInputBoxDidHide(sessionId: number): void;
    $onCreatedInputBoxDidTriggerButton(sessionId: number, btnHandler: number): void;
    $onDidTriggerButton(btnHandler: number): void;
    $onDidTriggerItemButton(itemHandler: number, btnHandler: number): void;
    showInputBox(options?: vscode.InputBoxOptions, token?: CancellationToken): PromiseLike<string | undefined>;
    $validateInput(input: string): MaybePromise<string | {
        message: string;
        severity: Severity;
    } | null | undefined>;
    hideInputBox(): void;
}
//# sourceMappingURL=ext.host.quickopen.d.ts.map