import type { Context } from "../context.ts"; import { type ForkDestinationSnapshot, type ForkSourceSnapshot } from "./fork.ts"; import type { CommitResult, Entry, EntryScan, EntryStructure, ForkOptions, Session, SessionCreateOptions, SessionMetadata, SessionRepo, SessionStats, Storage, StorageBranchScan, UsageRow, UsageScan, Write } from "./types.ts"; import type { ListElement, ListReadOptions, StoredValue, Value, ValueList } from "./values.ts"; export interface MemoryStorageOptions { now?: () => number; } export interface MemorySessionRepoOptions { now?: () => number; } export declare class MemoryStorage implements Storage { private readonly now; private storageState; private commitQueue; private state; private closePromise; constructor(options?: MemoryStorageOptions); commit(writes: Write[], _context: Context): Promise; getEntries(ids: string[], _context: Context): Promise>; getValue(address: Value, _context: Context): Promise | undefined>; scanValues(prefix: Value, _context: Context): Promise[]>; readList(address: ValueList, options: ListReadOptions | undefined, _context: Context): Promise[]>; scanBranch(query: StorageBranchScan, _context: Context): Promise; scanBranchStructure(query: StorageBranchScan, _context: Context): Promise; scanEntries(query: EntryScan, _context: Context): Promise; scanUsage(query: UsageScan, _context: Context): Promise; getStats(_context: Context): Promise; /** Capture the state needed to fork at one serialized boundary between commits. */ captureForkSource(_context: Context): Promise; close(_context: Context): Promise; static fromSnapshot(options: MemoryStorageOptions, snapshot: ForkDestinationSnapshot): MemoryStorage; } export declare class MemorySessionRepo implements SessionRepo { private readonly now; private readonly sessions; private readonly pendingIds; private closed; private closePromise; constructor(options?: MemorySessionRepoOptions); create(options: SessionCreateOptions, context: Context): Promise; open(metadata: SessionMetadata, _context: Context): Promise; list(_options: undefined, _context: Context): Promise; delete(metadata: SessionMetadata, context: Context): Promise; fork(source: SessionMetadata, options: ForkOptions, context: Context): Promise; close(context: Context): Promise; private openRecord; private reserveId; private assertOpen; } //# sourceMappingURL=memory.d.ts.map