import type { ArkmeTimelinePage } from './types.js'; import type { ChatSyncCommand } from './chat-message-sync.js'; export declare const TIMELINE_CACHE_FILE = "chat-timeline-v2.sqlite3"; export declare const MAX_CACHED_WINDOWS = 256; export declare const MAX_TIMELINE_WINDOW_EVENTS = 2000; export declare const MAX_TIMELINE_WINDOW_BYTES: number; export interface TimelineCacheCommit { ticket?: number; latest?: boolean; refreshTokens?: string[]; } /** Single-writer store. In production every call runs on the dedicated storage worker. */ export declare class UnifiedTimelineCache { private readonly db; private readonly statements; private readonly messageSync; constructor(directory: string); private prepare; reserve(): number; sync(command: ChatSyncCommand): unknown; private syncBytes; private enforceSyncBudget; read(scope: string, request: string, anchorId?: string, latest?: boolean): ArkmeTimelinePage | undefined; write(scope: string, request: string, page: ArkmeTimelinePage, options?: TimelineCacheCommit): boolean; /** Lost revocations discard projections, keeping sync identities for bounded recovery. */ invalidateAll(): void; invalidateSource(sourceKey: string, timelineItemKey?: string, terminal?: boolean, refreshOnly?: boolean): void; invalidate(scope: string, timelineItemKey?: string, terminal?: boolean, refreshOnly?: boolean): void; private collect; private trimPhysicalPages; private remove; close(): void; } //# sourceMappingURL=unified-timeline-cache.d.ts.map