import { Event } from "../../../../base/common/event.js";
import { IDisposable } from "../../../../base/common/lifecycle.js";
import { IObservable } from "../../../../base/common/observable.js";
import { ConfigurationTarget } from "../../../../platform/configuration/common/configuration.js";
import { StorageScope } from "../../../../platform/storage/common/storage.js";
import { IWorkspaceFolderData } from "../../../../platform/workspace/common/workspace.js";
import { IResolvedValue } from "../../../services/configurationResolver/common/configurationResolverExpression.js";
import { IMcpHostDelegate, IMcpResolveConnectionOptions } from "./mcpRegistryTypes.js";
import { McpCollectionDefinition, LazyCollectionState, McpCollectionReference, IMcpServerConnection } from "./mcpTypes.js";
export declare const IMcpRegistry: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IMcpRegistry>;
export interface IMcpRegistry {
    readonly _serviceBrand: undefined;
    readonly onDidChangeInputs: Event<void>;
    readonly collections: IObservable<readonly McpCollectionDefinition[]>;
    readonly delegates: readonly IMcpHostDelegate[];
    readonly lazyCollectionState: IObservable<LazyCollectionState>;
    collectionToolPrefix(collection: McpCollectionReference): IObservable<string>;
    discoverCollections(): Promise<McpCollectionDefinition[]>;
    registerDelegate(delegate: IMcpHostDelegate): IDisposable;
    registerCollection(collection: McpCollectionDefinition): IDisposable;
    resetTrust(): void;
    getTrust(collection: McpCollectionReference): IObservable<boolean | undefined>;
    clearSavedInputs(scope: StorageScope, inputId?: string): Promise<void>;
    editSavedInput(inputId: string, folderData: IWorkspaceFolderData | undefined, configSection: string, target: ConfigurationTarget): Promise<void>;
    setSavedInput(inputId: string, target: ConfigurationTarget, value: string): Promise<void>;
    getSavedInputs(scope: StorageScope): Promise<{
        [id: string]: IResolvedValue;
    }>;
    resolveConnection(options: IMcpResolveConnectionOptions): Promise<IMcpServerConnection | undefined>;
}
