import type { BaseItem, Modifier } from '@signaldb/core'; interface Insert = BaseItem, I = any> { type: 'insert'; data: T; } interface Update = BaseItem, I = any> { type: 'update'; data: { id: I; modifier: Modifier; }; } interface Remove { type: 'remove'; data: IdType; } export type Change = BaseItem, I = any> = { id: string; time: number; collectionName: string; } & (Insert | Update | Remove); export interface Snapshot = BaseItem, I = any> { id: string; time: number; collectionName: string; items: T[]; } export type SyncOperation = { id: string; start: number; collectionName: string; instanceId: string; } & ({ status: 'active'; end?: never; error?: never; } | { status: 'done'; end: number; error?: never; } | { status: 'error'; end: number; error: any; }); export {};