import { type McpClientOptions } from "./client.js"; import { type McpTransport } from "./transport.js"; import { type AuthProviderDeps, type OAuthConsentInfo } from "./auth/provider.js"; import type { McpAuthProvider } from "./auth/types.js"; import type { McpDiscoveryOptions, McpDiscoveryResult, McpNormalizedResult, McpRequestOptions, McpServerDefinition, McpSnapshot, McpToolMetadata } from "./types.js"; export type McpTransportFactory = (definition: McpServerDefinition) => McpTransport; export interface McpManagerOptions { readonly discovery?: McpDiscoveryOptions | undefined; readonly connectConcurrency?: number | undefined; readonly connectTimeoutMs?: number | undefined; readonly requestTimeoutMs?: number | undefined; readonly transportFactory?: McpTransportFactory | undefined; readonly clientOptions?: McpClientOptions | undefined; readonly openBrowser?: ((url: string) => Promise) | undefined; readonly requestOAuthConsent?: ((info: OAuthConsentInfo) => Promise) | undefined; readonly oauthInteractive?: boolean | undefined; readonly onDeviceAuthorization?: AuthProviderDeps["onDeviceAuthorization"]; readonly onAuthorizationUrl?: AuthProviderDeps["onAuthorizationUrl"]; readonly authProviderFactory?: ((definition: McpServerDefinition) => McpAuthProvider | undefined) | undefined; } export declare class McpManager { private readonly options; private readonly connections; private readonly authProviders; private readonly authSignatures; private readonly stopped; private discovery; constructor(options?: McpManagerOptions); private get connectTimeoutMs(); private get requestTimeoutMs(); private createTransport; private buildAuthProvider; private rememberAuthProvider; canLogin(serverName: string): boolean; resolveServerName(serverName: string): string | undefined; private findDefinition; liveSecrets(serverName: string): readonly string[]; private mergedSecrets; getDiscovery(): McpDiscoveryResult; get discoveryWorkspaceFolder(): string | undefined; refresh(options?: { force?: boolean; }): Promise; forceRefresh(): Promise; private setIdleConnection; isStopped(serverName: string): boolean; stop(serverName: string): Promise; reconnect(name: string): Promise; private connect; private fallbackTransportFor; private attemptConnect; private reconcileToolNames; private disposeConnection; closeAll(): Promise; snapshot(): McpSnapshot; private toStatus; getTool(name: string): McpToolMetadata | undefined; listTools(): McpToolMetadata[]; callTool(name: string, args: Record, options?: McpRequestOptions): Promise; login(serverName: string): Promise<{ ok: boolean; detail: string; }>; }