import { AtomicOperation, PointsAccountSnapshot, PointsAttributes } from '../types'; export type CollectPointsSnapshotsMode = 'pointsCreatesOnly' | 'pointsUpdatesOnly' | 'pointsCreatesOrUpdates'; /** * Collects per–POINTS-account snapshots from atomic operations. * * - `pointsAccounts`: unique by `accountId` (last occurrence in event order wins). * - `points` (legacy): sum of the last-seen balance for each unique account — * providing a total across all loyalty schemes. */ export declare function collectPointsAccountSnapshotsFromAtomicOperations(atomicOperations: readonly AtomicOperation[], mode: CollectPointsSnapshotsMode): { pointsAccounts: PointsAccountSnapshot[]; points?: PointsAttributes; }; /** * Same data as {@link collectPointsAccountSnapshotsFromAtomicOperations}, shaped for * spreading into outbound event payloads (`pointsAccounts` / `points` only when set). */ export type PointsSnapshotEventFields = Partial<{ pointsAccounts: PointsAccountSnapshot[]; points: PointsAttributes; }>; export declare function pointsSnapshotFieldsForEvent(atomicOperations: readonly AtomicOperation[], mode: CollectPointsSnapshotsMode): PointsSnapshotEventFields;