export type { MutableDaemonConfig, MutableDaemonConfigPatch } from "../shared/messages.js";
type MutableDaemonConfig = import("../shared/messages.js").MutableDaemonConfig;
type MutableDaemonConfigPatch = import("../shared/messages.js").MutableDaemonConfigPatch;
type LoggerLike = {
    child(bindings: Record<string, unknown>): LoggerLike;
    info(...args: any[]): void;
};
type ConfigListener = (config: MutableDaemonConfig) => void;
type FieldChangeHandler = (value: unknown) => void;
export declare class DaemonConfigStore {
    private current;
    private readonly seaworkHome;
    private readonly logger;
    private readonly changeListeners;
    private readonly fieldChangeHandlers;
    constructor(seaworkHome: 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