export interface CollabUser { name: string; email: string; color: string; avatarUrl?: string; } export type PresencePayload = Record; export interface OtherPresence { clientId: number; user: CollabUser; presence: PresencePayload; isAgent: boolean; } export interface NormalizedPoint { x: number; y: number; } export type RecentEditDescriptor = { kind: "text"; quote: string; } | { kind: "selector"; selector: string; } | { kind: "paths"; paths: string[]; } | { kind: "doc"; } | { kind: string; [key: string]: unknown; }; export interface RecentEdit { descriptor: RecentEditDescriptor; label?: string; at: number; } export interface AttributedRecentEdit extends RecentEdit { clientId: number; user: OtherPresence["user"]; isAgent: boolean; } export declare const RECENT_EDITS_MAX = 5; export declare const RECENT_EDIT_TTL_MS = 10000; export declare function emailToColor(email: string): string; export declare function emailToName(email: string): string; export declare function dedupeCollabUsersByEmail(users: CollabUser[]): CollabUser[]; //# sourceMappingURL=types.d.ts.map