import type { ToastStore } from './toast-store.js';
import type { ActivityStore } from './activity-store.js';
export interface SettingsStore {
    getCurrent(): Readonly<Record<string, unknown>>;
    getPending(): Readonly<Record<string, unknown>>;
    isDirty(): boolean;
    dirtyKeys(): string[];
    set(key: string, value: unknown): void;
    discard(): void;
    commit(): void;
    subscribe(fn: () => void): () => void;
    /** Persist a single pending key to disk and remove it from pending on success. */
    commitOne(path: string): Promise<void>;
    /** No-op when `path` has no pending value; otherwise calls commitOne. */
    blur(path: string): Promise<void>;
}
export declare function createSettingsStore(initial: Readonly<Record<string, unknown>>, toastStore?: ToastStore, activityStore?: ActivityStore): SettingsStore;
//# sourceMappingURL=settings-store.d.ts.map