import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"; import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service"; import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service"; import { IAuthenticationMcpAccessService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/browser/authenticationMcpAccessService.service"; export interface AllowedMcpServer { id: string; name: string; /** * If true or undefined, the extension is allowed to use the account * If false, the extension is not allowed to use the account * TODO: undefined shouldn't be a valid value, but it is for now */ allowed?: boolean; lastUsed?: number; trusted?: boolean; } export declare class AuthenticationMcpAccessService extends Disposable implements IAuthenticationMcpAccessService { private readonly _storageService; private readonly _productService; _serviceBrand: undefined; private _onDidChangeMcpSessionAccess; readonly onDidChangeMcpSessionAccess: Event<{ providerId: string; accountName: string; }>; constructor(_storageService: IStorageService, _productService: IProductService); isAccessAllowed(providerId: string, accountName: string, mcpServerId: string): boolean | undefined; readAllowedMcpServers(providerId: string, accountName: string): AllowedMcpServer[]; updateAllowedMcpServers(providerId: string, accountName: string, mcpServers: AllowedMcpServer[]): void; removeAllowedMcpServers(providerId: string, accountName: string): void; }