import { CancellationToken } from "../../../base/common/cancellation.js";
import { Event } from "../../../base/common/event.js";
import { IQuickAccessController } from "./quickAccess.js";
import { IQuickInputButton, IQuickPickItem, QuickPickInput, IPickOptions, Omit, IInputOptions, IQuickPick, IInputBox, IQuickWidget, IQuickNavigateConfiguration, IKeyMods, IQuickInput } from "./quickInput.js";
export declare const IQuickInputService: import("../../instantiation/common/instantiation.js").ServiceIdentifier<IQuickInputService>;
export interface IQuickInputService {
    readonly _serviceBrand: undefined;
    readonly backButton: IQuickInputButton;
    readonly quickAccess: IQuickAccessController;
    readonly onShow: Event<void>;
    readonly onHide: Event<void>;
    pick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & {
        canPickMany: true;
    }, token?: CancellationToken): Promise<T[] | undefined>;
    pick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & {
        canPickMany: false;
    }, token?: CancellationToken): Promise<T | undefined>;
    pick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: Omit<IPickOptions<T>, "canPickMany">, token?: CancellationToken): Promise<T | undefined>;
    input(options?: IInputOptions, token?: CancellationToken): Promise<string | undefined>;
    createQuickPick<T extends IQuickPickItem>(options: {
        useSeparators: true;
    }): IQuickPick<T, {
        useSeparators: true;
    }>;
    createQuickPick<T extends IQuickPickItem>(options?: {
        useSeparators: boolean;
    }): IQuickPick<T, {
        useSeparators: false;
    }>;
    createInputBox(): IInputBox;
    createQuickWidget(): IQuickWidget;
    focus(): void;
    toggle(): void;
    navigate(next: boolean, quickNavigate?: IQuickNavigateConfiguration): void;
    back(): Promise<void>;
    accept(keyMods?: IKeyMods): Promise<void>;
    cancel(): Promise<void>;
    currentQuickInput: IQuickInput | undefined;
}
