export interface CrdtVersion {
    versionId: string;
    versionName?: string;
    state: Uint8Array | number[];
    timestamp: number;
}
export interface CrdtVersionWithEncryptedState extends Omit<CrdtVersion, 'state'> {
    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;
}
