/**
 * Config Hot-Reload Module
 *
 * Provides automatic configuration reloading when files change.
 * Supports subsystem-specific reloaders and rollback on failure.
 */
export type { SubsystemId, ConfigChange, ConfigSnapshot, SubsystemReloader, ReloadResult, WatcherConfig, HotReloadEvents, } from './types.js';
export { DEFAULT_WATCHER_CONFIG, HotReloadEmitter, SUBSYSTEM_PRIORITY, SUBSYSTEM_DEPENDENCIES, } from './types.js';
export { hashConfig, createSnapshot, snapshotsEqual, diffConfigs, groupChangesBySubsystem, getAffectedSubsystems, getSubsystemForPath, mergeChanges, createPatch, createRollbackPatch, } from './diff.js';
export { ConfigWatcher, getConfigWatcher, resetConfigWatcher, } from './watcher.js';
export { registerReloader, unregisterReloader, reloadSubsystems, sortByPriority, getReloadOrder, hasAllReloaders, getMissingReloaders, createNoOpReloader, createSimpleReloader, } from './reloader.js';
import type { ReloadResult, WatcherConfig } from './types.js';
import { HotReloadEmitter } from './types.js';
/**
 * Hot-reload manager configuration
 */
export interface HotReloadManagerConfig {
    /** Watcher configuration */
    watcher?: Partial<WatcherConfig>;
    /** Whether to auto-start watching */
    autoStart?: boolean;
    /** Whether to rollback on failure */
    rollbackOnFailure?: boolean;
    /** Whether to stop reloading on first error */
    stopOnFirstError?: boolean;
    /** Whether to reload in parallel */
    parallelReload?: boolean;
}
/**
 * Default hot-reload manager configuration
 */
export declare const DEFAULT_HOT_RELOAD_CONFIG: HotReloadManagerConfig;
/**
 * Hot-reload manager
 *
 * Coordinates file watching, change detection, and subsystem reloading.
 */
export declare class HotReloadManager extends HotReloadEmitter {
    private config;
    private watcher;
    private running;
    constructor(config?: Partial<HotReloadManagerConfig>);
    /**
     * Setup listeners for watcher events
     */
    private setupWatcherListeners;
    /**
     * Start watching for config changes
     */
    start(): Promise<void>;
    /**
     * Stop watching for config changes
     */
    stop(): void;
    /**
     * Add a path to watch
     */
    addPath(watchPath: string): Promise<void>;
    /**
     * Remove a path from watching
     */
    removePath(watchPath: string): void;
    /**
     * Force reload all configs
     */
    forceReload(): Promise<ReloadResult[]>;
    /**
     * Check if manager is running
     */
    isRunning(): boolean;
    /**
     * Get watched paths
     */
    getWatchedPaths(): string[];
}
/**
 * Get the singleton hot-reload manager
 */
export declare function getHotReloadManager(config?: Partial<HotReloadManagerConfig>): HotReloadManager;
/**
 * Reset the singleton hot-reload manager
 */
export declare function resetHotReloadManager(): void;
/**
 * Convenience function to start hot-reload with default paths
 */
export declare function startHotReload(config?: Partial<HotReloadManagerConfig>): Promise<HotReloadManager>;
/**
 * Convenience function to stop hot-reload
 */
export declare function stopHotReload(): void;
