import { EventEmitter } from "node:events"; export interface AwarenessEntry { clientId: number; state: string; lastSeen: number; clientSequence?: number; clientSequenceRaw?: number; actorEmail?: string | null; clearTokenHash?: string | null; } export interface AwarenessRow extends AwarenessEntry { clientSequence: number; clientSequenceRaw: number; cleared: boolean; } export declare const AWARENESS_CHANGE_EVENT: "awareness-change"; export interface AwarenessChangeEvent { source: "awareness"; type: "awareness-change"; docId: string; states: Array<{ clientId: number; state: string; }>; owner?: string; orgId?: string; resourceType?: string; resourceId?: string; } export interface AwarenessScope { owner?: string; orgId?: string; resourceType?: string; resourceId?: string; } export declare function getAwarenessEmitter(): EventEmitter; export declare function rememberAwarenessScope(docId: string, scope: AwarenessScope | undefined): void; export declare function emitAwarenessChange(docId: string, states: Array<{ clientId: number; state: string; }>, scope?: AwarenessScope): void; export declare function rememberAwarenessClear(docId: string, clientId: number, clearedAt?: number, clientSequence?: number, actorEmail?: string | null): void; export declare function forgetAwarenessClear(docId: string, clientId: number): void; export declare function getDocAwareness(docId: string): Map; export declare function cleanExpired(map: Map, docId?: string): void; export declare const postAwareness: import("h3").EventHandlerWithFetch>; export declare const getActiveUsers: import("h3").EventHandlerWithFetch>;