import * as vscode from "vscode";
import { Disposable, IDisposable } from "../../../base/common/lifecycle.js";
import { IExtensionDescription } from "../../../platform/extensions/common/extensions.js";
import { McpServerLaunch } from "../../contrib/mcp/common/mcpTypes.js";
import { ExtHostMcpShape, MainThreadMcpShape } from "./extHost.protocol.js";
import { IExtHostRpcService } from "./extHostRpcService.js";
export declare const IExtHostMpcService: import("../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IExtHostMpcService>;
export interface IExtHostMpcService extends ExtHostMcpShape {
    registerMcpConfigurationProvider(extension: IExtensionDescription, id: string, provider: vscode.McpConfigurationProvider): IDisposable;
}
export declare class ExtHostMcpService extends Disposable implements IExtHostMpcService {
    protected _proxy: MainThreadMcpShape;
    private readonly _initialProviderPromises;
    private readonly _sseEventSources;
    private readonly _eventSource;
    constructor(extHostRpc: IExtHostRpcService);
    $startMcp(id: number, launch: McpServerLaunch.Serialized): void;
    protected _startMcp(id: number, launch: McpServerLaunch): void;
    $stopMcp(id: number): void;
    $sendMessage(id: number, message: string): void;
    $waitForInitialCollectionProviders(): Promise<void>;
    registerMcpConfigurationProvider(extension: IExtensionDescription, id: string, provider: vscode.McpConfigurationProvider): IDisposable;
}
