import type { Database } from '../runtime/sqlite'; import type { Logger } from '../types'; export interface KvEntry { key: string; data: unknown; updatedAt: number; expiresAt: number; } export interface KvService { get(projectId: string, key: string): T | null; set(projectId: string, key: string, data: T): void; delete(projectId: string, key: string): void; list(projectId: string): KvEntry[]; listByPrefix(projectId: string, prefix: string): KvEntry[]; } export declare function createKvService(db: Database, _logger?: Logger, defaultTtlMs?: number): KvService; /** * Degraded-mode KvService backed by an in-process Map. Used when * `initializeDatabase` fails (corruption, EACCES, read-only FS, etc.) so * plugin init can still complete and agents (forge/muse/sage) are registered. * * Contract is identical to `createKvService`. Data is NOT persisted across * process restarts. TTL semantics match the DB-backed implementation * (lazy expiry on read). */ export declare function createInMemoryKvService(logger?: Logger, defaultTtlMs?: number): KvService; //# sourceMappingURL=kv.d.ts.map