import type { CollectionConfig, SingleResult, Transaction } from '@tanstack/react-db'; import { Effect } from 'effect'; import type { DecodedEntity, DecodedSingleEntity } from '../../../core/index.js'; import type { AnyUnkeyedESchema } from '../../../eschema/index.js'; import type { WriteError } from '../../domain/sync-error/index.js'; import type { Tracker } from '../registry/index.js'; import type { SingleItemStrategy } from '../../strategy/strategy/index.js'; import type { CollectionItem, CollectionItemSchema, StdCollectionOptions } from '../../domain/collection-item/index.js'; import { buildSingleItemMutations } from '../mutation/index.js'; import { type CollectionName } from '../../domain/identity/index.js'; import type { OutboxRuntime } from '../../outbox/outbox/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 { SyncReporter } from '../../domain/sync-event/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 SingleItemResult = CollectionConfig, string, CollectionItemSchema> & SingleResult & { schema: CollectionItemSchema; utils: { schema: () => S; flowId: () => string; applyToSyncReplica: (entities: DecodedEntity[]) => Effect.Effect[], WriteError>; onUpdate?: NonNullable>['onUpdate']>; pacedUpdate: (changes: Partial) => Transaction>; }; }; export declare const buildSingleItemCollection: (tracker: Tracker, config: { schema: S; strategy: SingleItemStrategy; options?: StdCollectionOptions; onUpdate?: (payload: { updates: Partial; }) => Effect.Effect, unknown, R>; pacing?: PaceStrategyFactory; outbox?: OutboxRuntime | null; store: SyncStore; leadership: Leadership; collectionName: CollectionName; assertActive: () => void; trackCleanup: (cleanup: () => Promise) => () => Promise; runner: EffectRunner; report: SyncReporter; peerChannel?: PeerChannelFactory | null; flow: CollectionFlow; }) => SingleItemResult; //# sourceMappingURL=single-item-collection.d.ts.map