import type { SourceMeta } from "./types.js";
/**
 * Canonical MCP server configuration.
 */
export interface MCPServer {
    /** Server name (unique key) */
    name: string;
    /** Whether this server is enabled (default: true) */
    enabled?: boolean;
    /** Connection timeout in milliseconds */
    timeout?: number;
    /** Command to run (for stdio transport) */
    command?: string;
    /** Command arguments */
    args?: string[];
    /** Environment variables */
    env?: Record<string, string>;
    /** Working directory for stdio transport */
    cwd?: string;
    /** URL (for HTTP/SSE transport) */
    url?: string;
    /** HTTP headers (for HTTP transport) */
    headers?: Record<string, string>;
    /** Authentication configuration */
    auth?: {
        type: "oauth" | "apikey";
        credentialId?: string;
        tokenUrl?: string;
        clientId?: string;
        clientSecret?: string;
        resource?: string;
    };
    /** OAuth configuration (clientId, clientSecret, redirectUri, callbackPort, callbackPath, prompt) for servers requiring explicit client credentials */
    oauth?: {
        clientId?: string;
        clientSecret?: string;
        redirectUri?: string;
        callbackPort?: number;
        callbackPath?: string;
        prompt?: string;
    };
    /** Transport type */
    transport?: "stdio" | "sse" | "http";
    /** Source metadata (added by loader) */
    _source: SourceMeta;
}
export declare const mcpCapability: import("./types.js").Capability<MCPServer>;
