json-crdt-server
Version:
JSON CRDT server and syncing local-first browser client
18 lines (17 loc) • 617 B
TypeScript
import { Observable } from 'rxjs';
import type { TPresenceEntry } from '../routes/presence/schema';
export type PresenceRoom = Map<string, TPresenceEntry>;
export declare class PresenceService {
private readonly rooms;
private readonly observers;
update(roomId: string, entryId: string, ttl: number, data: unknown): Promise<TPresenceEntry>;
remove(roomId: string, entryId: string): Promise<void>;
listen$(roomId: string): Observable<TPresenceEntry[]>;
private getRoom;
private cleanUpRoom;
stats(): {
rooms: number;
entries: number;
observers: number;
};
}