import { InputBoxOptions } from '@theia/plugin';
import { interfaces } from '@theia/core/shared/inversify';
import { RPCProtocol } from '../../common/rpc-protocol';
import { QuickOpenMain, TransferInputBox, TransferQuickPickItem, TransferQuickInput, TransferQuickPickOptions } from '../../common/plugin-api-rpc';
import { QuickInput, QuickPickItem } from '@theia/core/lib/browser';
import { DisposableCollection, Disposable } from '@theia/core/lib/common/disposable';
import { CancellationToken } from '@theia/core/lib/common/cancellation';
export interface QuickInputSession {
    input: QuickInput;
    handlesToItems: Map<number, QuickPickItem>;
}
export declare class QuickOpenMainImpl implements QuickOpenMain, Disposable {
    private quickInputService;
    private proxy;
    private delegate;
    private readonly items;
    protected readonly toDispose: DisposableCollection;
    constructor(rpc: RPCProtocol, container: interfaces.Container);
    dispose(): void;
    $show(instance: number, options: TransferQuickPickOptions<TransferQuickPickItem>, token: CancellationToken): Promise<number | number[] | undefined>;
    private normalizeIconPath;
    private toQuickPickItem;
    $setItems(instance: number, items: TransferQuickPickItem[]): Promise<any>;
    $setError(instance: number, error: Error): Promise<void>;
    $input(options: InputBoxOptions, validateInput: boolean, token: CancellationToken): Promise<string | undefined>;
    $showInputBox(options: TransferInputBox, validateInput: boolean): Promise<string | undefined>;
    private sessions;
    $createOrUpdate(params: TransferQuickInput): Promise<void>;
    $hide(): void;
    $dispose(sessionId: number): Promise<void>;
    private convertToQuickInputButtons;
}
//# sourceMappingURL=quick-open-main.d.ts.map