import { type DbExec } from "../db/client.js"; import type { AwarenessRow } from "./awareness.js"; export declare const collabAwarenessStore: import("../db/store-registry.js").Store; export declare function ensureTable(): Promise; export declare function upsertAwarenessRow(docId: string, clientId: number, state: string, lastSeen: number): Promise; export declare function writeAwarenessRow(docId: string, clientId: number, state: string, lastSeen: number, clientSequence: number, cleared: boolean, actorEmail?: string | null, clearTokenHash?: string | null): Promise; export declare function deleteAwarenessRow(docId: string, clientId: number, maxLastSeen?: number): Promise; export declare function loadAwarenessRows(docId: string, now?: number): Promise; export declare function loadAwarenessRowsStrict(docId: string, now?: number): Promise; /** * Reads presence through `client`, such as an open transaction. A serverless * pool has one connection, so a read through `getDbExec()` while a transaction * holds it waits on that transaction. This doesn't create the table: read * presence once outside the transaction first. */ export declare function loadAwarenessRowsWith(client: DbExec, docId: string, now?: number): Promise; export declare function loadAwarenessClientSequence(docId: string, clientId: number): Promise<{ clientSequence: number; clientSequenceRaw: number; cleared: boolean; actorEmail: string | null; lastSeen: number; clearTokenHash: string | null; } | undefined>; export declare function _resetAwarenessStoreForTests(): void;