import { createDecorator } from '../../../../vs/platform/instantiation/common/instantiation'; import { CancellationToken } from '../../../../vs/base/common/cancellation'; import { IQuickPickItem, IPickOptions, IQuickPick, QuickPickInput, } from '../../../../vs/base/parts/quickinput/common/quickInput'; import { IQuickAccessController } from '../../../../vs/platform/quickinput/common/quickAccess'; export * from '../../../../vs/base/parts/quickinput/common/quickInput'; export const IQuickInputService = createDecorator('quickInputService'); export type Omit = Pick>; export interface IQuickInputService { readonly _serviceBrand: undefined; /** * Provides access to the quick access providers. */ readonly quickAccess: IQuickAccessController; /** * Opens the quick input box for selecting items and returns a promise * with the user selected item(s) if any. */ pick( picks: Promise[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: true }, token?: CancellationToken ): Promise; pick( picks: Promise[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: false }, token?: CancellationToken ): Promise; pick( picks: Promise[]> | QuickPickInput[], options?: Omit, 'canPickMany'>, token?: CancellationToken ): Promise; /** * Provides raw access to the quick pick controller. */ createQuickPick(): IQuickPick; }