import { CancellationToken } from "../../../../base/common/cancellation.js";
import { Event } from "../../../../base/common/event.js";
import { IMarkdownString } from "../../../../base/common/htmlContent.js";
import { IPager } from "@codingame/monaco-vscode-extension-gallery-service-override/vscode/vs/base/common/paging";
import { URI } from "../../../../base/common/uri.js";
import { IQueryOptions, IExtensionInfo, IExtensionQueryOptions, InstallExtensionResult } from "../../../../platform/extensionManagement/common/extensionManagement.js";
import { ProgressLocation } from "../../../../platform/progress/common/progress.js";
import { IExtensionManagementServer, EnablementState } from "../../../services/extensionManagement/common/extensionManagement.js";
import { IExtensionsStatus as IExtensionRuntimeStatus } from "../../../services/extensions/common/extensions.js";
import { IExtension, InstallExtensionOptions, AutoUpdateConfigurationValue, IExtensionsNotification } from "@codingame/monaco-vscode-972e8507-3a64-566d-8bc0-b78993998562-common/vscode/vs/workbench/contrib/extensions/common/extensions";
import { IExtensionEditorOptions } from "@codingame/monaco-vscode-5e324391-11e3-5ceb-93ee-938e4098e4ad-common/vscode/vs/workbench/contrib/extensions/common/extensionsInput";
export declare const IExtensionsWorkbenchService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IExtensionsWorkbenchService>;
export interface IExtensionsWorkbenchService {
    readonly _serviceBrand: undefined;
    readonly onChange: Event<IExtension | undefined>;
    readonly onReset: Event<void>;
    readonly preferPreReleases: boolean;
    readonly local: IExtension[];
    readonly installed: IExtension[];
    readonly outdated: IExtension[];
    readonly whenInitialized: Promise<void>;
    queryLocal(server?: IExtensionManagementServer): Promise<IExtension[]>;
    queryGallery(token: CancellationToken): Promise<IPager<IExtension>>;
    queryGallery(options: IQueryOptions, token: CancellationToken): Promise<IPager<IExtension>>;
    getExtensions(extensionInfos: IExtensionInfo[], token: CancellationToken): Promise<IExtension[]>;
    getExtensions(extensionInfos: IExtensionInfo[], options: IExtensionQueryOptions, token: CancellationToken): Promise<IExtension[]>;
    getResourceExtensions(locations: URI[], isWorkspaceScoped: boolean): Promise<IExtension[]>;
    canInstall(extension: IExtension): Promise<true | IMarkdownString>;
    install(id: string, installOptions?: InstallExtensionOptions, progressLocation?: ProgressLocation | string): Promise<IExtension>;
    install(vsix: URI, installOptions?: InstallExtensionOptions, progressLocation?: ProgressLocation | string): Promise<IExtension>;
    install(extension: IExtension, installOptions?: InstallExtensionOptions, progressLocation?: ProgressLocation | string): Promise<IExtension>;
    installInServer(extension: IExtension, server: IExtensionManagementServer): Promise<void>;
    downloadVSIX(extension: string, prerelease: boolean): Promise<void>;
    uninstall(extension: IExtension): Promise<void>;
    reinstall(extension: IExtension): Promise<IExtension>;
    togglePreRelease(extension: IExtension): Promise<void>;
    canSetLanguage(extension: IExtension): boolean;
    setLanguage(extension: IExtension): Promise<void>;
    setEnablement(extensions: IExtension | IExtension[], enablementState: EnablementState): Promise<void>;
    isAutoUpdateEnabledFor(extensionOrPublisher: IExtension | string): boolean;
    updateAutoUpdateEnablementFor(extensionOrPublisher: IExtension | string, enable: boolean): Promise<void>;
    shouldRequireConsentToUpdate(extension: IExtension): Promise<string | undefined>;
    updateAutoUpdateForAllExtensions(value: boolean): Promise<void>;
    open(extension: IExtension | string, options?: IExtensionEditorOptions): Promise<void>;
    openSearch(searchValue: string, focus?: boolean): Promise<void>;
    getAutoUpdateValue(): AutoUpdateConfigurationValue;
    checkForUpdates(): Promise<void>;
    getExtensionRuntimeStatus(extension: IExtension): IExtensionRuntimeStatus | undefined;
    updateAll(): Promise<InstallExtensionResult[]>;
    updateRunningExtensions(): Promise<void>;
    readonly onDidChangeExtensionsNotification: Event<IExtensionsNotification | undefined>;
    getExtensionsNotification(): IExtensionsNotification | undefined;
    isExtensionIgnoredToSync(extension: IExtension): boolean;
    toggleExtensionIgnoredToSync(extension: IExtension): Promise<void>;
    toggleApplyExtensionToAllProfiles(extension: IExtension): Promise<void>;
}
