import { CancellationToken } from "../../../../base/common/cancellation.js";
import { Event } from "../../../../base/common/event.js";
import { IObservable } from "../../../../base/common/observable.js";
import { IEditorOptions } from "../../../../platform/editor/common/editor.js";
import { IQueryOptions } from "@codingame/monaco-vscode-aa9ead53-dfd3-59da-b9e7-f163d201de8d-common/vscode/vs/platform/mcp/common/mcpManagement";
import { IMcpServerSamplingConfiguration } from "@codingame/monaco-vscode-aa9ead53-dfd3-59da-b9e7-f163d201de8d-common/vscode/vs/workbench/contrib/mcp/common/mcpConfiguration";
import { IMcpServer, LazyCollectionState, type ISamplingOptions, type ISamplingResult, type IWorkbenchMcpServer } from "./mcpTypes.js";
export declare const IMcpService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IMcpService>;
export interface IMcpService {
    _serviceBrand: undefined;
    readonly servers: IObservable<readonly IMcpServer[]>;
    resetCaches(): void;
    readonly lazyCollectionState: IObservable<LazyCollectionState>;
    activateCollections(): Promise<void>;
}
export declare const IMcpWorkbenchService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IMcpWorkbenchService>;
export interface IMcpWorkbenchService {
    readonly _serviceBrand: undefined;
    readonly onChange: Event<IWorkbenchMcpServer | undefined>;
    readonly local: readonly IWorkbenchMcpServer[];
    queryLocal(): Promise<IWorkbenchMcpServer[]>;
    queryGallery(options?: IQueryOptions, token?: CancellationToken): Promise<IWorkbenchMcpServer[]>;
    install(mcpServer: IWorkbenchMcpServer): Promise<void>;
    uninstall(mcpServer: IWorkbenchMcpServer): Promise<void>;
    open(extension: IWorkbenchMcpServer | string, options?: IEditorOptions): Promise<void>;
}
export interface IMcpSamplingService {
    _serviceBrand: undefined;
    sample(opts: ISamplingOptions): Promise<ISamplingResult>;
    hasLogs(server: IMcpServer): boolean;
    getLogText(server: IMcpServer): string;
    getConfig(server: IMcpServer): IMcpServerSamplingConfiguration;
    updateConfig(server: IMcpServer, mutate: (r: IMcpServerSamplingConfiguration) => unknown): Promise<IMcpServerSamplingConfiguration>;
}
export declare const IMcpSamplingService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IMcpSamplingService>;
