/** * MCP Profile Registry (TypeScript) * * Named, ordered subsets of registered MCP servers. * Stored in ~/.aiwg/mcp-profiles.json. * * This module is used for type checking and vitest. * profiles.mjs is the runtime ESM version used by cli.mjs. * * @implements #889 */ import { McpServerRegistry, McpServerDefinition } from './registry.js'; export interface McpProfileProviderOverride { toolDeny?: string[]; toolAllow?: string[]; } export interface McpProfile { /** Profile name (unique, [a-z0-9-]+) */ name: string; /** Human-readable description */ description?: string; /** Server names referenced from the server registry. '__all__' expands to all servers. */ servers: string[]; /** Per-provider tool allow/deny overrides */ providerOverrides?: Record; /** ISO timestamp */ createdAt?: string; /** ISO timestamp */ updatedAt?: string; } export interface McpProfileRegistryData { apiVersion: string; kind: string; profiles: Record; } export interface ProfileEditChanges { description?: string; addServers?: string[]; removeServers?: string[]; } export declare const PRESET_PROFILES: Record>; export declare class McpProfileRegistry { private readonly configDir; private cache; constructor(configDirOverride?: string); getPath(): string; load(): Promise; save(): Promise; private validateName; private validateServers; add(profile: McpProfile, serverRegistry?: McpServerRegistry): Promise; get(name: string): Promise; list(): Promise; edit(name: string, changes: ProfileEditChanges, serverRegistry?: McpServerRegistry): Promise; remove(name: string): Promise; resolveServers(name: string, serverRegistry?: McpServerRegistry): Promise; importFrom(filePath: string): Promise<{ added: number; updated: number; }>; exportTo(filePath: string, profileName?: string): Promise; initPresets(): Promise<{ added: number; total: number; }>; clearCache(): void; } //# sourceMappingURL=profiles.d.ts.map