/**
 * Configuration Manager for Code Quality Orchestrator
 * Handles database initialization, service configuration, and environment setup
 */
import { getStorageService } from "./storage-service.js";
import type { Kysely } from "kysely";
export interface OrchestratorServiceConfig {
    database: {
        path: string;
        enableWAL?: boolean;
        enableMetrics?: boolean;
        maxHistoryDays?: number;
    };
    performance: {
        batchSize?: number;
        maxMemoryMB?: number;
        enableCaching?: boolean;
    };
    scheduling: {
        defaultFrequencyMs?: number;
        adaptivePolling?: boolean;
        maxConcurrentChecks?: number;
    };
    watch: {
        enabled?: boolean;
        intervalMs?: number;
        debounceMs?: number;
        autoCleanup?: boolean;
    };
    monitoring: {
        enablePerformanceMetrics?: boolean;
        logLevel?: "debug" | "info" | "warn" | "error";
        metricsRetentionDays?: number;
    };
}
export declare const DEFAULT_CONFIG: OrchestratorServiceConfig;
export declare class ConfigManager {
    private config;
    private databaseInitialized;
    private servicesInitialized;
    constructor(config?: Partial<OrchestratorServiceConfig>);
    /**
     * Deep merge configuration objects
     */
    private mergeConfigs;
    /**
     * Get current configuration
     */
    getConfig(): OrchestratorServiceConfig;
    /**
     * Update configuration (will require reinitialization)
     */
    updateConfig(updates: Partial<OrchestratorServiceConfig>): void;
    /**
     * Initialize database with current configuration
     */
    initializeDatabase(): Promise<Kysely<any>>;
    /**
     * Initialize all services
     */
    initializeServices(): Promise<{
        storageService: ReturnType<typeof getStorageService>;
    }>;
    /**
     * Perform health checks on all services
     */
    healthCheck(): Promise<{
        database: boolean;
        storageService: boolean;
        overall: boolean;
    }>;
    /**
     * Get comprehensive system statistics
     */
    getSystemStats(): Promise<{
        config: OrchestratorServiceConfig;
        database: any;
        storage: any;
        performance: {
            uptime: number;
            memoryUsage: ReturnType<typeof process.memoryUsage>;
        };
    }>;
    /**
     * Perform maintenance tasks
     */
    performMaintenance(): Promise<{
        dataCleanup: any;
        databaseOptimization: boolean;
        errors: string[];
    }>;
    /**
     * Gracefully shutdown all services
     */
    shutdown(): Promise<void>;
    /**
     * Load configuration from file
     */
    static loadFromFile(configPath: string): Promise<ConfigManager>;
    /**
     * Save configuration to file
     */
    saveToFile(configPath: string): Promise<void>;
    /**
     * Create configuration for different environments
     */
    static createEnvironmentConfig(environment: "development" | "test" | "production"): ConfigManager;
}
/**
 * Validate configuration object
 * @archaeology-exclude temporary "Will be replaced by Zod schema validation in next version"
 * @archaeology-recheck-after 0.3.0
 * @since 0.2.0
 */
export declare function validateConfig(config: Partial<OrchestratorServiceConfig>): string[];
/**
 * Get configuration based on environment
 */
export declare function getEnvironmentConfig(): ConfigManager;
//# sourceMappingURL=config-manager.d.ts.map