export interface McpServerInfo {
    name: string;
    command: string;
    tools: string[];
    relevantFor: string[];
}
export interface McpRecommendation {
    name: string;
    source: string;
    relevance: 'high' | 'medium' | 'low';
    reason: string;
    installCommand: string;
    capabilities: string[];
    docsUrl: string;
}
export interface SuggestMcpsResult {
    installed: McpServerInfo[];
    recommended: McpRecommendation[];
    message: string;
}
export interface SuggestMcpsInput {
    projectId: string;
    specId?: string;
}
export interface DiscoverMcpsInput {
    configPath?: string;
    projectId?: string;
}
export interface ConsultDocsInput {
    topic: string;
    projectId: string;
    framework?: string;
}
export interface ConsultDocsResult {
    framework: string;
    topic: string;
    docsUrl: string;
    summary: string;
    codeExamples: string[];
    bestPractices: string[];
    source?: 'web' | 'cache' | 'local-fallback';
    stale?: boolean;
    fetchedAt?: string;
}
export interface DiscoverMcpsResult {
    mcpServers: McpServerInfo[];
    message: string;
}
export interface DocsRegistryEntry {
    base: string;
    search: string;
    apiDocsUrl?: string;
    version?: string;
    lastFetched?: string;
    userAdded?: boolean;
}
export interface DocsRegistry {
    frameworks: Record<string, DocsRegistryEntry>;
    languages: Record<string, DocsRegistryEntry>;
    services: Record<string, DocsRegistryEntry>;
}
export interface McpConfigEntry {
    command?: string;
    args?: string[];
    env?: Record<string, string>;
}
export interface McpConfigFile {
    mcpServers?: Record<string, McpConfigEntry>;
}
export interface McpCatalogEntry {
    name: string;
    source: string;
    docsUrl: string;
    type: string;
    services: string[];
    capabilities: string[];
    installCommand: string;
}
export interface McpCatalog {
    mcps: Record<string, McpCatalogEntry>;
}
export type MCPTransport = 'stdio' | 'sse' | 'http-streamable';
export interface ToolContract {
    name: string;
    description: string;
    inputSchema: Record<string, unknown>;
    outputSchema: Record<string, unknown>;
    sideEffects: string[];
    errorCodes: MCPErrorCode[];
    timeoutMs: number;
}
export interface MCPToolDef {
    name: string;
    description: string;
    inputSchema: Record<string, unknown>;
    outputFormat: 'text' | 'image' | 'embedded-resource';
    errorCases: string[];
}
export interface MCPResourceDef {
    uri: string;
    mimeType: string;
    description: string;
}
export interface MCPPromptDef {
    name: string;
    description: string;
    arguments: string[];
}
export interface MCPServerSpec {
    tools: MCPToolDef[];
    resources: MCPResourceDef[];
    prompts: MCPPromptDef[];
    transport: MCPTransport;
    protocolVersion: string;
    compliance: string[];
}
export type MCPBreakingChangeType = 'tool-renamed' | 'param-removed' | 'param-type-changed' | 'output-type-changed' | 'description-changed';
export interface MCPBreakingChange {
    toolName: string;
    changeType: MCPBreakingChangeType;
    affectedField: string;
    migrationCriteria: string;
}
export type MCPErrorCode = 'InvalidParams' | 'InternalError' | 'MethodNotFound';
export interface MCPComplianceViolation {
    toolName: string;
    rule: string;
    severity: 'error' | 'warning';
}
export interface MCPComplianceResult {
    violations: MCPComplianceViolation[];
    warnings: MCPComplianceViolation[];
    compliantTools: string[];
    nonCompliantTools: string[];
}
export interface AgentObservabilitySpec {
    tracing: string[];
    budgetAlerts: string[];
    structuredLogs: string[];
    metricsSchema: string[];
}
import type { AgentPlatform } from './common.js';
export type SessionOptimizationSupport = 'full' | 'partial' | 'none';
export interface PlatformSessionOptimization {
    platform: AgentPlatform;
    support: SessionOptimizationSupport;
    template: string | null;
}
export interface OrchestrationScriptConfig {
    shellType: 'bash' | 'zsh';
    worktreeBase: string;
    branchPrefix: string;
    parallelMode: boolean;
    reportOnCompletion: boolean;
    cleanupInstructions: boolean;
}
export interface RecommendedSkill {
    name: string;
    description: string;
    installCommand: string;
    justification: string;
}
export interface AutomationLayer {
    subAgentNote: string;
    orchestrationScript: string | null;
}
//# sourceMappingURL=mcp.d.ts.map