import { ShapeSubscription } from '../../satellite/index.js'; import { Shape } from '../../satellite/shapes/types.js'; export type TableName = string; export type SyncStatus = undefined | { status: 'active'; serverId: string; } | { status: 'cancelling'; serverId: string; } | { status: 'establishing'; serverId: string; progress: 'receiving_data' | 'removing_data'; oldServerId?: string; }; export interface IShapeManager { subscribe(shapes: Shape[], key?: string): Promise; unsubscribe(keys: string[]): Promise; syncStatus(key: string): SyncStatus; }