import type { FileHookConfig, FileHookTypeConfig, ConfigChangeCallback } from '../../types/file-hooks.js';
export declare class ConfigLoader {
    private config;
    private readonly projectRoot;
    private watcher;
    private changeCallbacks;
    constructor(projectRoot: string);
    /**
     * Load config from `.planu/hooks.json` or `planu.json`.
     * Falls back to defaults if file missing or invalid.
     */
    load(): Promise<FileHookConfig>;
    /**
     * Get current config (synchronous, must call load() first).
     */
    getConfig(): FileHookConfig;
    /**
     * Get config for a specific hook type.
     */
    getHookConfig(hookType: string): FileHookTypeConfig | undefined;
    /**
     * Start watching config files for live reload.
     */
    startWatching(): void;
    /**
     * Register a callback for config changes.
     */
    onChange(callback: ConfigChangeCallback): void;
    /**
     * Stop watching and clean up.
     */
    close(): void;
    private reloadConfig;
    private readJsonFile;
}
//# sourceMappingURL=config-loader.d.ts.map