export type { MutableDaemonConfig, MutableDaemonConfigPatch } from "@kong-link/protocol/messages";
type MutableDaemonConfig = import("@kong-link/protocol/messages").MutableDaemonConfig;
type MutableDaemonConfigPatch = import("@kong-link/protocol/messages").MutableDaemonConfigPatch;
type ProviderOverride = import("./agent/provider-launch-config.js").ProviderOverride;
interface LoggerLike {
    child(bindings: Record<string, unknown>): LoggerLike;
    info(...args: unknown[]): void;
}
type ConfigListener = (config: MutableDaemonConfig) => void;
type FieldChangeHandler = (value: unknown) => void;
export declare function applyMutableProviderConfigToOverrides(baseOverrides: Record<string, ProviderOverride> | undefined, mutableProviders: MutableDaemonConfig["providers"] | undefined): Record<string, ProviderOverride> | undefined;
export declare class DaemonConfigStore {
    private current;
    private readonly paseoHome;
    private readonly logger;
    private readonly changeListeners;
    private readonly fieldChangeHandlers;
    constructor(paseoHome: string, initial: MutableDaemonConfig, logger?: LoggerLike);
    get(): MutableDaemonConfig;
    patch(partial: MutableDaemonConfigPatch): MutableDaemonConfig;
    onFieldChange(path: string, handler: FieldChangeHandler): () => void;
    onChange(listener: ConfigListener): () => void;
    private persistConfig;
}
//# sourceMappingURL=daemon-config-store.d.ts.map