import type { EventEmitter } from "node:events"; import { type DbExec } from "../db/client.js"; export declare function getSettingsEmitter(): EventEmitter; export declare const settingsStore: import("../db/store-registry.js").Store; export declare function ensureTable(): Promise; export interface StoreReadOptions { /** Skip the per-request snapshot when a cross-request race must be checked. */ bypassCache?: boolean; transaction?: DbExec; } export declare function getSetting(key: string, options?: StoreReadOptions): Promise | null>; export type SettingEntry = { found: false; } | { found: true; value: unknown; }; /** Like `getSetting`, but a stored JSON `null` is found, not missing. */ export declare function getSettingEntry(key: string, options?: StoreReadOptions): Promise; export declare function getSettings(keys: readonly string[], options?: StoreReadOptions): Promise | null>>; export interface StoreWriteOptions { requestSource?: string; } export declare function mutateSetting(key: string, updater: (current: Record | null) => Record | Promise>, options?: StoreWriteOptions): Promise>; export declare function putSetting(key: string, value: Record, options?: StoreWriteOptions): Promise; export declare function deleteSetting(key: string, options?: StoreWriteOptions): Promise; export declare function deleteSettingIfValue(key: string, expected: Record, options?: StoreWriteOptions): Promise; export declare function deleteSettingsByPrefix(prefix: string, options?: StoreWriteOptions): Promise; export declare function listSettingsByPrefix(prefix: string, options?: { limit?: number; }): Promise; }>>;