/** * Engine configuration validator * * Validates DagEngine configuration during initialization to catch * errors early and provide clear error messages. * * @module validation/config-validator */ import type { Plugin } from "../../plugin.js"; import type { ProviderAdapter, ProviderAdapterConfig } from "../../providers/adapter.js"; import type { ProviderRegistry } from "../../providers/registry.js"; import type { PricingConfig } from "../../types.js"; /** * Execution configuration interface */ interface ExecutionConfig { concurrency?: number; maxRetries?: number; retryDelay?: number; continueOnError?: boolean; timeout?: number; dimensionTimeouts?: Record; } /** * Engine configuration interface */ interface EngineConfig { plugin: Plugin; providers?: ProviderAdapter | ProviderAdapterConfig | ProviderRegistry; registry?: ProviderRegistry; execution?: ExecutionConfig; concurrency?: number; maxRetries?: number; retryDelay?: number; continueOnError?: boolean; timeout?: number; dimensionTimeouts?: Record; pricing?: PricingConfig; } /** * Configuration validator for DagEngine * * Performs comprehensive validation of engine configuration including: * - Required fields (plugin, providers) * - Numeric constraints (concurrency, retries, timeouts) * - Provider availability */ export declare class ConfigValidator { /** * Validates engine configuration * * @param config - Engine configuration to validate * @throws {ConfigurationError} If configuration is invalid * * @example * ```typescript * try { * ConfigValidator.validate(config); * } catch (error) { * if (error instanceof ConfigurationError) { * console.error('Invalid config:', error.message); * } * } * ``` */ static validate(config: EngineConfig): void; /** * Validates that an adapter has at least one provider * * @param adapter - Provider adapter to validate * @throws {NoProvidersError} If no providers are configured */ static validateProviderAdapter(adapter: ProviderAdapter): void; /** * Validates required fields */ private static validateRequired; /** * Validates provider configuration * * Note: Provider validation happens during initialization. * This is a placeholder for future provider-specific validation. */ private static validateProviders; /** * Validates numeric constraints (concurrency, retries, delays) */ private static validateNumericConstraints; /** * Validates concurrency setting * * @param concurrency - Concurrency value to validate * @throws {ValidationError} If concurrency is invalid */ private static validateConcurrency; /** * Validates retry attempts * * @param maxRetries - Max retry value to validate * @throws {ValidationError} If retries setting is invalid */ private static validateRetries; /** * Validates retry delay * * @param retryDelay - Retry delay to validate * @throws {ValidationError} If retry delay is invalid */ private static validateRetryDelay; /** * Validates timeout settings */ private static validateTimeouts; /** * Validates a single timeout value * * @param timeout - Timeout value in milliseconds * @param field - Field name for error messages * @throws {ValidationError} If timeout is invalid */ private static validateTimeout; } export {}; //# sourceMappingURL=config-validator.d.ts.map