import { Event } from "../../../../base/common/event.js";
import { AuthenticationSessionAccount, AuthenticationSession } from "../common/authentication.js";
export declare const IAuthenticationMcpService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IAuthenticationMcpService>;
export interface IAuthenticationMcpService {
    readonly _serviceBrand: undefined;
    onDidChangeAccountPreference: Event<{
        mcpServerIds: string[];
        providerId: string;
    }>;
    getAccountPreference(mcpServerId: string, providerId: string): string | undefined;
    updateAccountPreference(mcpServerId: string, providerId: string, account: AuthenticationSessionAccount): void;
    removeAccountPreference(mcpServerId: string, providerId: string): void;
    updateSessionPreference(providerId: string, mcpServerId: string, session: AuthenticationSession): void;
    getSessionPreference(providerId: string, mcpServerId: string, scopes: string[]): string | undefined;
    removeSessionPreference(providerId: string, mcpServerId: string, scopes: string[]): void;
    selectSession(providerId: string, mcpServerId: string, mcpServerName: string, scopes: string[], possibleSessions: readonly AuthenticationSession[]): Promise<AuthenticationSession>;
    requestSessionAccess(providerId: string, mcpServerId: string, mcpServerName: string, scopes: string[], possibleSessions: readonly AuthenticationSession[]): void;
    requestNewSession(providerId: string, scopes: string[], mcpServerId: string, mcpServerName: string): Promise<void>;
}
