import { Effect } from 'effect'; import type { CadenceConfig } from '../../strategy/cadence-repair/index.js'; import { type CollectionName } from '../../domain/identity/index.js'; import type { CollectionConfig, Transaction } from '@tanstack/react-db'; import type { DecodedEntity } from '../../../core/index.js'; import type { AnyEntityESchema } from '../../../eschema/index.js'; import type { WriteError } from '../../domain/sync-error/index.js'; import type { SyncReporter } from '../../domain/sync-event/index.js'; import type { CollectionItem, CollectionItemSchema, DeletePayload, UpdateChanges, UpdatePayload } from '../../domain/collection-item/index.js'; import type { Tracker } from '../registry/index.js'; import type { OutboxRuntime } from '../../outbox/outbox/index.js'; import type { PartitionEntry, PartitionMap } from '../../strategy/strategy/index.js'; import type { PaceStrategyFactory } from '../pacing/index.js'; import type { SyncStore } from '../../platform/sync-store/index.js'; import { type EffectRunner } from '../../platform/effect-runner/index.js'; import { type CollectionFlow } from '../../flow/sync-flow/index.js'; import { type PeerChannelFactory } from '../../platform/peer-sync/index.js'; import type { Leadership } from '../../platform/leadership/index.js'; export type KeyedCollectionUtils = { schema: () => S; flowId: () => string; applyToSyncReplica: (entities: DecodedEntity | DecodedEntity[]) => Effect.Effect[], WriteError>; pacedUpdate: (key: string, changes: UpdateChanges) => Transaction>; }; export declare const buildKeyedCollection: (tracker: Tracker, config: { schema: S; total?: PartitionEntry; partitions?: PartitionMap; onInsert?: (items: ReadonlyArray) => Effect.Effect>, unknown, R>; onUpdate?: (payload: UpdatePayload) => Effect.Effect, unknown, R>; onDelete?: (payload: DeletePayload) => Effect.Effect, unknown, R>; pacing?: PaceStrategyFactory; outbox?: OutboxRuntime | null; store: SyncStore; leadership: Leadership; collectionName: CollectionName; assertActive: () => void; trackCleanup: (cleanup: () => Promise) => () => Promise; defaultCadence?: CadenceConfig; runner?: EffectRunner; report: SyncReporter; peerChannel?: PeerChannelFactory | null; flow: CollectionFlow; }) => CollectionConfig, string, CollectionItemSchema, KeyedCollectionUtils> & { schema: CollectionItemSchema; utils: KeyedCollectionUtils; }; //# sourceMappingURL=keyed-collection.d.ts.map