import type { ProviderConfig, SdkProvider } from '../types/config.js';
import type { McpServerConfig } from './templates/mcp-templates.js';
interface ValidationResult {
    valid: boolean;
    errors: string[];
    warnings: string[];
}
interface ProviderTestResult {
    providerName: string;
    connected: boolean;
    error?: string;
}
/**
 * Validates the structure of the configuration object
 */
export declare function validateConfig(providers: ProviderConfig[], mcpServers: Record<string, McpServerConfig>): ValidationResult;
/**
 * Tests connectivity to a provider
 */
export declare function testProviderConnection(provider: ProviderConfig, timeout?: number): Promise<ProviderTestResult>;
/**
 * Provider configuration object format (for agents.config.json)
 */
interface ProviderConfigObject {
    nanocoder: {
        providers: Array<{
            name: string;
            models: string[];
            baseUrl?: string;
            apiKey?: string;
            organizationId?: string;
            timeout?: number;
            sdkProvider?: SdkProvider;
        }>;
    };
}
/**
 * MCP configuration object format (for .mcp.json)
 * Uses Claude Code object format
 */
interface McpConfigObject {
    mcpServers: Record<string, McpServerConfig>;
}
/**
 * Builds the provider configuration object for agents.config.json
 */
export declare function buildProviderConfigObject(providers: ProviderConfig[]): ProviderConfigObject;
/**
 * Builds the MCP configuration object for .mcp.json
 * Uses Claude Code object format (servers as object keys)
 */
export declare function buildMcpConfigObject(mcpServers: Record<string, McpServerConfig>): McpConfigObject;
/**
 * @deprecated Use buildProviderConfigObject and buildMcpConfigObject instead
 * This function is kept for backward compatibility during migration
 */
export declare function buildConfigObject(providers: ProviderConfig[], mcpServers: Record<string, McpServerConfig>): ProviderConfigObject & {
    nanocoder: {
        providers: Array<{
            name: string;
            models: string[];
            baseUrl?: string;
            apiKey?: string;
            organizationId?: string;
            timeout?: number;
            sdkProvider?: SdkProvider;
        }>;
        mcpServers?: McpServerConfig[];
    };
};
export {};
//# sourceMappingURL=validation.d.ts.map