import { EventEmitter } from 'events';
import { MonitoringConfig } from '../types/monitoring';
export interface ConfigManagerOptions {
    configDir?: string;
    autoSave?: boolean;
    backupConfig?: boolean;
    watchFiles?: boolean;
}
export interface ConfigBackup {
    timestamp: Date;
    version: string;
    config: MonitoringConfig;
    reason: string;
}
export interface ConfigValidationResult {
    valid: boolean;
    errors: string[];
    warnings: string[];
}
export interface ConfigWatcher {
    event: string;
    handler: (config: MonitoringConfig) => void;
}
export declare class ConfigManager extends EventEmitter {
    private config;
    private configDir;
    private configFile;
    private backupDir;
    private options;
    private fileWatcher?;
    private lastSaveTime;
    private saveDebounceTimer?;
    constructor(options?: ConfigManagerOptions);
    load(): Promise<MonitoringConfig>;
    save(config?: MonitoringConfig): Promise<void>;
    update(updates: Partial<MonitoringConfig>): Promise<void>;
    reset(selective?: string[]): Promise<void>;
    getConfig(): MonitoringConfig;
    validate(config: MonitoringConfig): ConfigValidationResult;
    private merge;
    private createBackup;
    private cleanupBackups;
    private ensureDirectories;
    private setupFileWatcher;
    private migrateIfNeeded;
    private mergeWithDefaults;
    private getDefaultConfig;
    destroy(): void;
}
export declare const configManager: ConfigManager;
//# sourceMappingURL=config-manager.d.ts.map