/**
 * SettingsStore — non-secret workspace key/value pairs.
 * Plaintext on disk; UI can read and write.
 *
 * After the scope-collapse refactor, settings are single-tier: Studiograph
 * is single-workspace-per-process, so secrets.db has no scope dimension.
 */
import type { ActorContext } from './SecretStore.js';
export interface SettingMetadata {
    key: string;
    /** JSON-serialized value. Use `getValue<T>()` for typed access. */
    valueJson: string;
    updatedAt: number;
    updatedBy: string;
}
export interface SetSettingInput {
    key: string;
    /** Any JSON-serializable value. */
    value: unknown;
}
export interface SettingsStore {
    set(input: SetSettingInput, actor: ActorContext): Promise<SettingMetadata>;
    /**
     * Return the parsed value, or undefined when unset. Synchronous —
     * settings are read on the hot path.
     */
    get<T = unknown>(key: string): T | undefined;
    list(): SettingMetadata[];
    delete(key: string, actor: ActorContext): Promise<boolean>;
}
