import type { RegisteredTool } from './registry.js'; import type { McpConfigRoots, McpConfigScope, McpEffectiveConfig, McpServerConfig } from './config.js'; import type { McpReloadResult } from './registry.js'; import type { McpDecisionRecord, McpServerRole, McpTrustMode, QuarantineReason, SchemaFreshness } from '../runtime/mcp/types.js'; export interface McpServerRecord { readonly name: string; readonly connected: boolean; readonly transport?: 'stdio' | 'http' | undefined; readonly protocolVersion?: string | undefined; readonly protocolEra?: 'modern' | 'legacy' | undefined; } export interface McpServerSecurityRecord { readonly name: string; readonly connected: boolean; readonly transport?: 'stdio' | 'http' | undefined; readonly protocolVersion?: string | undefined; readonly protocolEra?: 'modern' | 'legacy' | undefined; readonly role: McpServerRole; readonly trustMode: McpTrustMode; readonly allowedPaths: readonly string[]; readonly allowedHosts: readonly string[]; readonly schemaFreshness: SchemaFreshness; readonly quarantineReason?: QuarantineReason | undefined; readonly quarantineDetail?: string | undefined; readonly quarantineApprovedBy?: string | undefined; } export interface McpSandboxBindingRecord { readonly name: string; readonly sessionId?: string | undefined; readonly profileId?: 'mcp-shared' | 'mcp-per-server' | undefined; readonly state?: import('../runtime/sandbox/types.js').SandboxSessionState | undefined; readonly backend?: import('../runtime/sandbox/types.js').SandboxResolvedBackend | import('../runtime/sandbox/types.js').SandboxVmBackend | undefined; readonly startupStatus?: 'verified' | 'planned' | 'failed' | undefined; } export interface McpApi { getEffectiveConfig(roots: McpConfigRoots): McpEffectiveConfig; reload(roots: McpConfigRoots): Promise; upsertServerConfig(roots: McpConfigRoots, scope: McpConfigScope, serverConfig: McpServerConfig): Promise<{ readonly path: string; readonly reload: McpReloadResult; }>; removeServerConfig(roots: McpConfigRoots, scope: McpConfigScope, serverName: string): Promise<{ readonly path: string; readonly removed: boolean; readonly reload: McpReloadResult; }>; listServerNames(): readonly string[]; listServers(): readonly McpServerRecord[]; listServerSecurity(): readonly McpServerSecurityRecord[]; listSandboxBindings(): readonly McpSandboxBindingRecord[]; listRecentSecurityDecisions(limit?: number): readonly McpDecisionRecord[]; listAllTools(): Promise; setServerTrustMode(serverName: string, mode: McpTrustMode): void; setServerRole(serverName: string, role: McpServerRole): void; quarantineSchema(serverName: string, reason: QuarantineReason, detail?: string): void; approveSchemaQuarantine(serverName: string, operatorId: string): void; } export interface McpApiRegistry { readonly serverNames: readonly string[]; getEffectiveConfig(roots: McpConfigRoots): McpEffectiveConfig; reload(roots: McpConfigRoots): Promise; upsertServerConfig(roots: McpConfigRoots, scope: McpConfigScope, serverConfig: McpServerConfig): Promise<{ readonly path: string; readonly reload: McpReloadResult; }>; removeServerConfig(roots: McpConfigRoots, scope: McpConfigScope, serverName: string): Promise<{ readonly path: string; readonly removed: boolean; readonly reload: McpReloadResult; }>; listServers(): readonly McpServerRecord[]; listServerSecurity(): readonly McpServerSecurityRecord[]; listServerSandboxBindings(): readonly McpSandboxBindingRecord[]; listRecentSecurityDecisions(limit?: number): readonly McpDecisionRecord[]; listAllTools(): Promise; setServerTrustMode(serverName: string, mode: McpTrustMode): void; setServerRole(serverName: string, role: McpServerRole): void; quarantineSchema(serverName: string, reason: QuarantineReason, detail?: string): void; approveSchemaQuarantine(serverName: string, operatorId: string): void; } export declare function createMcpApi(registry: McpApiRegistry): McpApi; //# sourceMappingURL=mcp-api.d.ts.map