export declare function init(appId: string): void; /** True iff init() has been called with an appId. Callers that may run before * daemon startup (e.g. the dashboard IPC server invoked from tests) can use * this to skip persistence rather than crash the request. */ export declare function isInitialised(): boolean; /** * Per-chat result of a markSeen call. `preexisting=false` means we stamped * this chat for the first time in *this* call — callers that need provenance * (e.g. the defaultOncall auto-bind judge) must treat freshly-stamped chats * as "unknown age" rather than "new", because a missed backfill manifests * exactly the same way as a real first observation. */ export interface SeenEntry { firstSeenAt: number; preexisting: boolean; } /** * Record `Date.now()` for each chatId not yet known, return per-chat * (firstSeenAt, preexisting) for the requested ids. Batches the write so a * fresh 44-chat listChats only hits disk once. Empty map is returned when * the store hasn't been init()'d (test harnesses that spin the IPC server up * without a daemon backing it). */ export declare function markSeenBulkDetailed(chatIds: readonly string[]): Map; /** Back-compat shim — same semantics as before, returns only the timestamps. */ export declare function markSeenBulk(chatIds: readonly string[]): Map; //# sourceMappingURL=chat-first-seen-store.d.ts.map