import { Effect } from 'effect'; import type { DecodedEntity } from '../../../core/index.js'; import type { WriteError } from '../../domain/sync-error/index.js'; import type { EffectRunner } from '../../platform/effect-runner/index.js'; import type { SyncReporter } from '../../domain/sync-event/index.js'; import type { CollectionFlow } from '../../flow/sync-flow/index.js'; import type { CollectionName } from '../../domain/identity/index.js'; export type CollectionHandle = { schemaName: string; collectionName: CollectionName; applyToSyncReplica: (entities: DecodedEntity[]) => Effect.Effect; projectOnly: (entities: DecodedEntity[]) => Effect.Effect; flow: () => CollectionFlow | null; stop: Effect.Effect; restart: Effect.Effect; }; export type Tracker = { register: (handle: CollectionHandle) => void; lookup: (schemaName: string) => CollectionHandle | null; all: () => CollectionHandle[]; }; export declare const makeTracker: () => Tracker; export declare const buildRegistry: (tracker: Tracker, runner: EffectRunner, report: SyncReporter) => { process: (message: unknown) => void; }; //# sourceMappingURL=registry.d.ts.map