/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { CancellationToken } from "../../../base/common/cancellation.mjs";
import { IQuickInputOptions, QuickInputController } from "../../../base/parts/quickinput/browser/quickInput.mjs";
import { IAccessibilityService } from "../../accessibility/common/accessibility.mjs";
import { IContextKeyService } from "../../contextkey/common/contextkey.mjs";
import { IInstantiationService } from "../../instantiation/common/instantiation.mjs";
import { ILayoutService } from "../../layout/browser/layoutService.mjs";
import { IQuickAccessController } from "../common/quickAccess.mjs";
import { IInputBox, IInputOptions, IKeyMods, IPickOptions, IQuickInputButton, IQuickInputService, IQuickNavigateConfiguration, IQuickPick, IQuickPickItem, QuickPickInput } from "../common/quickInput.mjs";
import { IThemeService, Themable } from "../../theme/common/themeService.mjs";
export interface IQuickInputControllerHost extends ILayoutService {
}
export declare class QuickInputService extends Themable implements IQuickInputService {
    private readonly instantiationService;
    protected readonly contextKeyService: IContextKeyService;
    private readonly accessibilityService;
    protected readonly layoutService: ILayoutService;
    readonly _serviceBrand: undefined;
    get backButton(): IQuickInputButton;
    private readonly _onShow;
    readonly onShow: import("../../../base/common/event.mjs").Event<void>;
    private readonly _onHide;
    readonly onHide: import("../../../base/common/event.mjs").Event<void>;
    private _controller;
    private get controller();
    private get hasController();
    private _quickAccess;
    get quickAccess(): IQuickAccessController;
    private readonly contexts;
    constructor(instantiationService: IInstantiationService, contextKeyService: IContextKeyService, themeService: IThemeService, accessibilityService: IAccessibilityService, layoutService: ILayoutService);
    protected createController(host?: IQuickInputControllerHost, options?: Partial<IQuickInputOptions>): QuickInputController;
    private setContextKey;
    private resetContextKeys;
    pick<T extends IQuickPickItem, O extends IPickOptions<T>>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: O, token?: CancellationToken): Promise<(O extends {
        canPickMany: true;
    } ? T[] : T) | undefined>;
    input(options?: IInputOptions, token?: CancellationToken): Promise<string | undefined>;
    createQuickPick<T extends IQuickPickItem>(): IQuickPick<T>;
    createInputBox(): IInputBox;
    focus(): void;
    toggle(): void;
    navigate(next: boolean, quickNavigate?: IQuickNavigateConfiguration): void;
    accept(keyMods?: IKeyMods): Promise<void>;
    back(): Promise<void>;
    cancel(): Promise<void>;
    updateStyles(): void;
    private computeStyles;
}
