export interface CrdtVersion { versionId: string; versionName?: string; state: Uint8Array | number[]; timestamp: number; } export interface CrdtVersionWithEncryptedState extends Omit { encryptedState: string; } export interface CrdtUpdateDataQuery { id: string; state: Uint8Array | number[]; data?: unknown; } export interface CrdtOnDataChangeQuery { id: string; callback: (data: any) => void; } export interface CrdtGetDataQuery { id: string; } export interface CrdtOnStateChangeQuery { id: string; callback: (data: any) => void; } export interface CrdtUpdateStateQuery { id: string; state: Uint8Array | number[]; } export interface CrdtRegisterSyncUserQuery { id: string; } export interface CrdtOnRegisteredUserChangeQuery { id: string; callback: (data: any) => void; } export interface CrdtSetPresenceQuery { id: string; } export interface CrdtOnPresenceChangeQuery { id: string; callback: (data: any) => void; } export interface CrdtSaveVersionQuery { id: string; versionId: string; versionName?: string; state: Uint8Array | number[]; } export interface CrdtGetVersionQuery { id: string; versionId: string; } export interface CrdtGetVersionsQuery { id: string; } export interface CrdtDeleteVersionQuery { id: string; versionId: string; } export interface CrdtPushMessageQuery { id: string; data: number[]; yjsClientId: number; messageType?: 'sync' | 'awareness'; /** User-facing value for event emission only (not stored in database) */ eventData?: unknown; /** Yjs data type: 'text' | 'map' | 'array' | 'xml' | 'xmltext' */ type?: string; /** Content key used in Y.Doc shared types */ contentKey?: string; /** Editor/library source: 'tiptap', 'plate', 'codemirror', etc. */ source?: string; } export interface CrdtOnMessageQuery { id: string; callback: (message: CrdtMessageData) => void; afterTs?: number; } export interface CrdtMessageData { data: number[]; yjsClientId: number; timestamp: number; } export interface CrdtSnapshotData { state?: Uint8Array | number[]; vector?: Uint8Array | number[]; timestamp?: number; } export interface CrdtGetSnapshotQuery { id: string; } export interface CrdtSaveSnapshotQuery { id: string; state: Uint8Array | number[]; vector: Uint8Array | number[]; /** Yjs data type: 'text' | 'map' | 'array' | 'xml' | 'xmltext' */ type?: string; /** Content key used in Y.Doc shared types */ contentKey?: string; /** Editor/library source: 'tiptap', 'plate', 'codemirror', etc. */ source?: string; } export interface CrdtGetMessagesQuery { id: string; afterTs?: number; } export interface CrdtPruneMessagesQuery { id: string; beforeTs: number; }