@stamprally/core 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -99,6 +99,7 @@ type RedemptionMethod = "manual_slide" | "staff_passcode" | "view_only" | "serve
99
99
  type InventoryAggregationMode = "shared" | "per_reward";
100
100
  type RallyInventory = Readonly<Record<string, number>> & {
101
101
  readonly sharedStock?: number;
102
+ readonly global?: number;
102
103
  };
103
104
  interface RallyInventoryState {
104
105
  readonly sharedRemaining?: number;
@@ -332,8 +333,10 @@ declare function createClaimTicketNumber(rewardId: string, options?: ClaimTicket
332
333
  declare function createUniqueClaimTicketNumber(rewardId: string, issuedAt: string): string;
333
334
  declare function issueClaimTicketNumber(reward: Reward, currentState: RewardState, options?: ClaimTicketOptions): RewardState;
334
335
 
336
+ type ConflictResolutionPolicy = "authoritative_replay" | "server_wins" | "merge";
335
337
  interface MergeConflictOptions {
336
- readonly policy: "server_wins" | "merge";
338
+ /** `merge` is retained for compatibility; synchronization paths use `authoritative_replay`. */
339
+ readonly policy: ConflictResolutionPolicy;
337
340
  }
338
341
  /** Resolves a server/local state conflict without mutating either input state. */
339
342
  declare function resolveRallyStateConflict(serverState: UserRallyState, localState: UserRallyState, options?: MergeConflictOptions): UserRallyState;
@@ -387,7 +390,7 @@ type OfflineOperation = {
387
390
  };
388
391
  type OfflineResult = CheckInResult | ClaimResult | UserRallyState;
389
392
  type SyncState = "idle" | "syncing" | "error";
390
- type SyncConflictPolicy = "server_wins" | "merge";
393
+ type SyncConflictPolicy = ConflictResolutionPolicy;
391
394
  interface OfflineConflictResult {
392
395
  readonly conflict: true;
393
396
  readonly localState: UserRallyState;
@@ -469,6 +472,9 @@ interface OfflineSyncResultEvent {
469
472
  readonly state?: UserRallyState;
470
473
  }
471
474
  type OfflineSyncResultListener = (event: OfflineSyncResultEvent) => void | Promise<void>;
475
+ type OfflineQueueChangeListener = () => void;
476
+ /** Removes only an operation's optimistic changes without mutating its inputs. */
477
+ declare function rollbackOptimisticOperation(state: UserRallyState, operation: OfflineOperation): UserRallyState;
472
478
  declare class MemoryQueueStorage implements OfflineQueueStorage {
473
479
  #private;
474
480
  load(key: string): Promise<ReadonlyArray<OfflineOperation>>;
@@ -504,6 +510,7 @@ declare class OfflineQueue {
504
510
  get rallyId(): string | undefined;
505
511
  get userId(): string | null;
506
512
  setSyncResultListener(listener: OfflineSyncResultListener | undefined): void;
513
+ setChangeListener(listener: OfflineQueueChangeListener | undefined): void;
507
514
  initialize(): Promise<void>;
508
515
  /** Releases browser listeners when the queue is no longer used. */
509
516
  dispose(): void;
@@ -640,12 +647,37 @@ type ClientEvent = {
640
647
  } | {
641
648
  readonly type: "sync";
642
649
  readonly state: UserRallyState;
650
+ } | {
651
+ readonly type: "syncLifecycle";
652
+ readonly event: SyncLifecycleEvent;
643
653
  } | {
644
654
  readonly type: "error";
645
655
  readonly error: ClientError | OfflineOperationError;
646
656
  };
647
657
  type ClientListener = (state: UserRallyState) => void;
648
658
  type ClientEventListener = (event: ClientEvent) => void;
659
+ type SyncLifecycleEvent = {
660
+ readonly type: "SYNC_STARTED";
661
+ } | {
662
+ readonly type: "OPERATION_ACCEPTED";
663
+ readonly operationId: string;
664
+ readonly resourceId: string;
665
+ } | {
666
+ readonly type: "OPERATION_ROLLED_BACK";
667
+ readonly operationId: string;
668
+ readonly resourceId: string;
669
+ readonly reason: string;
670
+ readonly errorCode: string;
671
+ } | {
672
+ readonly type: "OPERATION_RETRYABLE_ERROR";
673
+ readonly operationId: string;
674
+ readonly error: string;
675
+ } | {
676
+ readonly type: "SYNC_COMPLETED";
677
+ readonly totalProcessed: number;
678
+ readonly failedCount: number;
679
+ };
680
+ type SyncEventListener = (event: SyncLifecycleEvent) => void;
649
681
  interface CheckInRequest {
650
682
  readonly rallyId: string;
651
683
  readonly userId: string | null;
@@ -685,6 +717,9 @@ interface ClientOptions {
685
717
  readonly userId?: string | null;
686
718
  readonly anonymousSessionId?: string;
687
719
  readonly offlineQueue?: OfflineQueue;
720
+ readonly conflictResolutionPolicy?: ConflictResolutionPolicy;
721
+ /** Alias for conflictResolutionPolicy. */
722
+ readonly conflictPolicy?: ConflictResolutionPolicy;
688
723
  }
689
724
  type StorageOrOptions = StampStorage | ClientOptions;
690
725
  declare class StampRallyClient {
@@ -697,11 +732,16 @@ declare class StampRallyClient {
697
732
  get syncState(): SyncState;
698
733
  get pendingCount(): number;
699
734
  get rejectedHistory(): ReadonlyArray<RejectedOperationHistoryEntry>;
735
+ getSyncRevision(): number;
700
736
  get queueCapability(): OfflineQueueCapability;
701
737
  discardRejected(operationId: string): Promise<boolean>;
702
738
  retryRejected(operationId: string): Promise<boolean>;
739
+ dismissRejectedOperation(operationId: string): Promise<boolean>;
740
+ retryOperation(operationId: string): Promise<boolean>;
703
741
  subscribe(listener: ClientListener): () => void;
704
742
  subscribeEvents(listener: ClientEventListener): () => void;
743
+ subscribeSyncEvents(listener: SyncEventListener): () => void;
744
+ subscribeSyncState(listener: () => void): () => void;
705
745
  init(): Promise<UserRallyState>;
706
746
  initialize(): Promise<UserRallyState>;
707
747
  switchUser(newUserId: string | null): Promise<UserRallyState>;
@@ -820,4 +860,4 @@ type SnapshotTokenVerification<T extends SnapshotTokenPayload = SnapshotTokenPay
820
860
  declare function createSignedSnapshotToken<T extends SnapshotTokenPayload>(payload: T, secretKey: SnapshotSecretKey): Promise<string>;
821
861
  declare function verifySnapshotToken<T extends SnapshotTokenPayload = SnapshotTokenPayload>(token: string, secretKey: SnapshotSecretKey, now?: number): Promise<SnapshotTokenVerification<T>>;
822
862
 
823
- export { type AdminRallyConfig, type CheckInCondition, type CheckInOptions, type CheckInRequest, type CheckInResult, type CheckInSuccess, type ClaimOptions, type ClaimRequest, type ClaimResult, type ClaimSuccess, type ClaimTicketOptions, type ClientError, type ClientEvent, type ClientEventListener, type ClientListener, type ClientOptions, type CompositeConditionFailure, type ConditionMatch, type ConditionMismatch, ConfigValidationError, type ConsumeResult, type ConsumeRewardParams, type CustomValidationContext, type CustomValidator, DEFAULT_SHEET_THEME, type DetectorError, type DetectorErrorCode, type DetectorKind, type DetectorResult, type ExternalReference, type FontFamily, type GeoDetectorOptions, type GeoVerificationContext, MemoryQueueStorage as InMemoryOfflineQueueStorage, InMemoryStorage, IndexedDBAdapter, type IndexedDBAdapterOptions, type IndexedDBOfflineQueueOptions, IndexedDBOfflineQueueStorage, type InventoryAggregationMode, LocalStorageAdapter, type LocalStorageAdapterOptions, type LocalStorageFailureMode, type LocaleDictionary, type LocalizedString, type LocalizedText, type MergeConflictOptions, type NfcDetectorOptions, type NfcVerificationContext, type OfflineConflict, type OfflineConflictResult, type OfflineOperation, type OfflineOperationError, type OfflineOperationLifecycleStatus, type OfflineOperationResponse, type OfflineOperationStatus, OfflineQueue, type OfflineQueueCapability, type OfflineQueueOptions, type OfflineQueueStorage, type OfflineResult, type OfflineSender, type OfflineSyncResultEvent, type OfflineSyncResultListener, type ParseResult, type PasscodeCondition$1 as PasscodeCondition, type ProcessStampValue, type PublicCheckInCondition, type PublicConfigSafety, type PublicRallyConfig, type PublicReward, type PublicSpotItem, type QrDetectorOptions, type QrVerificationContext, type QueueOperationStatus, type RallyConfig, type RallyInventory, type RallyInventoryState, type RallySnapshot, type RedemptionMethod, type RejectedOperation, type RejectedOperationHistoryEntry, type Result, type Reward, type RewardConsumeError, type RewardState, type RewardStatus, type RewardType, type RewardUnlockCondition, type SecureTokenError, type SecureTokenErrorCode, type SecureTokenOptions, type SecureTokenPayload, type SecureTokenSecretKey, type SecureTokenVerification, type SheetTheme, type SlotShape, type SnapshotSecretKey, type SnapshotTokenError, type SnapshotTokenErrorCode, type SnapshotTokenPayload, type SnapshotTokenVerification, type SpotItem, type SpotStatus, type StampError, StampRallyClient, type StampRallyProgress, type StampRallyState, type StampRecord, type StampStorage, StorageAdapterError, type StorageAdapterErrorCode, type StorageLike, type StorageOperation, type StorageWarningHandler, type SupportedLocale, type SyncAdapter, type SyncConflictPolicy, type SyncRetryOptions, type SyncState, THEME_PRESETS, type ThemePreset, type ThemePresetId, type UserRallyState, type ValidationError, type Validator, type VerificationContext, assertPublicConfig, calculateDistanceMeters, calculateProgress, consumeReward, createAnonymousSessionId, createClaimTicketNumber, createSecureToken, createSignedSnapshotToken, createUniqueClaimTicketNumber, evaluateCondition, evaluateConditionDetailed, evaluateSpotStatus, exportProgressToken, getCurrentGeoContext, getOrderedSpots, getSpotStatus, importProgressToken, isGeolocationSupported, isNfcSupported, isPublicConfig, isQrSupported, isRewardState, isStampRallyState, issueClaimTicketNumber, normalizePasscode, offlineOperationId, parseAdminConfig, parsePublicConfig, processStamp, readNfcContext, readQrContext, reconcileRewardStates, resolveLocalizedText, resolveRallyStateConflict, safeParseAdminConfig, safeParsePublicConfig, sanitizeAdminConfig, storageKey, toLocalizedString, toPublicConfig, updateLocalizedField, validatePublicConfigSafety, validateRallyConfigRelations, verifyPasscode, verifySecureToken, verifySnapshotToken };
863
+ export { type AdminRallyConfig, type CheckInCondition, type CheckInOptions, type CheckInRequest, type CheckInResult, type CheckInSuccess, type ClaimOptions, type ClaimRequest, type ClaimResult, type ClaimSuccess, type ClaimTicketOptions, type ClientError, type ClientEvent, type ClientEventListener, type ClientListener, type ClientOptions, type CompositeConditionFailure, type ConditionMatch, type ConditionMismatch, ConfigValidationError, type ConflictResolutionPolicy, type ConsumeResult, type ConsumeRewardParams, type CustomValidationContext, type CustomValidator, DEFAULT_SHEET_THEME, type DetectorError, type DetectorErrorCode, type DetectorKind, type DetectorResult, type ExternalReference, type FontFamily, type GeoDetectorOptions, type GeoVerificationContext, MemoryQueueStorage as InMemoryOfflineQueueStorage, InMemoryStorage, IndexedDBAdapter, type IndexedDBAdapterOptions, type IndexedDBOfflineQueueOptions, IndexedDBOfflineQueueStorage, type InventoryAggregationMode, LocalStorageAdapter, type LocalStorageAdapterOptions, type LocalStorageFailureMode, type LocaleDictionary, type LocalizedString, type LocalizedText, type MergeConflictOptions, type NfcDetectorOptions, type NfcVerificationContext, type OfflineConflict, type OfflineConflictResult, type OfflineOperation, type OfflineOperationError, type OfflineOperationLifecycleStatus, type OfflineOperationResponse, type OfflineOperationStatus, OfflineQueue, type OfflineQueueCapability, type OfflineQueueChangeListener, type OfflineQueueOptions, type OfflineQueueStorage, type OfflineResult, type OfflineSender, type OfflineSyncResultEvent, type OfflineSyncResultListener, type ParseResult, type PasscodeCondition$1 as PasscodeCondition, type ProcessStampValue, type PublicCheckInCondition, type PublicConfigSafety, type PublicRallyConfig, type PublicReward, type PublicSpotItem, type QrDetectorOptions, type QrVerificationContext, type QueueOperationStatus, type RallyConfig, type RallyInventory, type RallyInventoryState, type RallySnapshot, type RedemptionMethod, type RejectedOperation, type RejectedOperationHistoryEntry, type Result, type Reward, type RewardConsumeError, type RewardState, type RewardStatus, type RewardType, type RewardUnlockCondition, type SecureTokenError, type SecureTokenErrorCode, type SecureTokenOptions, type SecureTokenPayload, type SecureTokenSecretKey, type SecureTokenVerification, type SheetTheme, type SlotShape, type SnapshotSecretKey, type SnapshotTokenError, type SnapshotTokenErrorCode, type SnapshotTokenPayload, type SnapshotTokenVerification, type SpotItem, type SpotStatus, type StampError, StampRallyClient, type StampRallyProgress, type StampRallyState, type StampRecord, type StampStorage, StorageAdapterError, type StorageAdapterErrorCode, type StorageLike, type StorageOperation, type StorageWarningHandler, type SupportedLocale, type SyncAdapter, type SyncConflictPolicy, type SyncEventListener, type SyncLifecycleEvent, type SyncRetryOptions, type SyncState, THEME_PRESETS, type ThemePreset, type ThemePresetId, type UserRallyState, type ValidationError, type Validator, type VerificationContext, assertPublicConfig, calculateDistanceMeters, calculateProgress, consumeReward, createAnonymousSessionId, createClaimTicketNumber, createSecureToken, createSignedSnapshotToken, createUniqueClaimTicketNumber, evaluateCondition, evaluateConditionDetailed, evaluateSpotStatus, exportProgressToken, getCurrentGeoContext, getOrderedSpots, getSpotStatus, importProgressToken, isGeolocationSupported, isNfcSupported, isPublicConfig, isQrSupported, isRewardState, isStampRallyState, issueClaimTicketNumber, normalizePasscode, offlineOperationId, parseAdminConfig, parsePublicConfig, processStamp, readNfcContext, readQrContext, reconcileRewardStates, resolveLocalizedText, resolveRallyStateConflict, rollbackOptimisticOperation, safeParseAdminConfig, safeParsePublicConfig, sanitizeAdminConfig, storageKey, toLocalizedString, toPublicConfig, updateLocalizedField, validatePublicConfigSafety, validateRallyConfigRelations, verifyPasscode, verifySecureToken, verifySnapshotToken };
package/dist/index.d.ts CHANGED
@@ -99,6 +99,7 @@ type RedemptionMethod = "manual_slide" | "staff_passcode" | "view_only" | "serve
99
99
  type InventoryAggregationMode = "shared" | "per_reward";
100
100
  type RallyInventory = Readonly<Record<string, number>> & {
101
101
  readonly sharedStock?: number;
102
+ readonly global?: number;
102
103
  };
103
104
  interface RallyInventoryState {
104
105
  readonly sharedRemaining?: number;
@@ -332,8 +333,10 @@ declare function createClaimTicketNumber(rewardId: string, options?: ClaimTicket
332
333
  declare function createUniqueClaimTicketNumber(rewardId: string, issuedAt: string): string;
333
334
  declare function issueClaimTicketNumber(reward: Reward, currentState: RewardState, options?: ClaimTicketOptions): RewardState;
334
335
 
336
+ type ConflictResolutionPolicy = "authoritative_replay" | "server_wins" | "merge";
335
337
  interface MergeConflictOptions {
336
- readonly policy: "server_wins" | "merge";
338
+ /** `merge` is retained for compatibility; synchronization paths use `authoritative_replay`. */
339
+ readonly policy: ConflictResolutionPolicy;
337
340
  }
338
341
  /** Resolves a server/local state conflict without mutating either input state. */
339
342
  declare function resolveRallyStateConflict(serverState: UserRallyState, localState: UserRallyState, options?: MergeConflictOptions): UserRallyState;
@@ -387,7 +390,7 @@ type OfflineOperation = {
387
390
  };
388
391
  type OfflineResult = CheckInResult | ClaimResult | UserRallyState;
389
392
  type SyncState = "idle" | "syncing" | "error";
390
- type SyncConflictPolicy = "server_wins" | "merge";
393
+ type SyncConflictPolicy = ConflictResolutionPolicy;
391
394
  interface OfflineConflictResult {
392
395
  readonly conflict: true;
393
396
  readonly localState: UserRallyState;
@@ -469,6 +472,9 @@ interface OfflineSyncResultEvent {
469
472
  readonly state?: UserRallyState;
470
473
  }
471
474
  type OfflineSyncResultListener = (event: OfflineSyncResultEvent) => void | Promise<void>;
475
+ type OfflineQueueChangeListener = () => void;
476
+ /** Removes only an operation's optimistic changes without mutating its inputs. */
477
+ declare function rollbackOptimisticOperation(state: UserRallyState, operation: OfflineOperation): UserRallyState;
472
478
  declare class MemoryQueueStorage implements OfflineQueueStorage {
473
479
  #private;
474
480
  load(key: string): Promise<ReadonlyArray<OfflineOperation>>;
@@ -504,6 +510,7 @@ declare class OfflineQueue {
504
510
  get rallyId(): string | undefined;
505
511
  get userId(): string | null;
506
512
  setSyncResultListener(listener: OfflineSyncResultListener | undefined): void;
513
+ setChangeListener(listener: OfflineQueueChangeListener | undefined): void;
507
514
  initialize(): Promise<void>;
508
515
  /** Releases browser listeners when the queue is no longer used. */
509
516
  dispose(): void;
@@ -640,12 +647,37 @@ type ClientEvent = {
640
647
  } | {
641
648
  readonly type: "sync";
642
649
  readonly state: UserRallyState;
650
+ } | {
651
+ readonly type: "syncLifecycle";
652
+ readonly event: SyncLifecycleEvent;
643
653
  } | {
644
654
  readonly type: "error";
645
655
  readonly error: ClientError | OfflineOperationError;
646
656
  };
647
657
  type ClientListener = (state: UserRallyState) => void;
648
658
  type ClientEventListener = (event: ClientEvent) => void;
659
+ type SyncLifecycleEvent = {
660
+ readonly type: "SYNC_STARTED";
661
+ } | {
662
+ readonly type: "OPERATION_ACCEPTED";
663
+ readonly operationId: string;
664
+ readonly resourceId: string;
665
+ } | {
666
+ readonly type: "OPERATION_ROLLED_BACK";
667
+ readonly operationId: string;
668
+ readonly resourceId: string;
669
+ readonly reason: string;
670
+ readonly errorCode: string;
671
+ } | {
672
+ readonly type: "OPERATION_RETRYABLE_ERROR";
673
+ readonly operationId: string;
674
+ readonly error: string;
675
+ } | {
676
+ readonly type: "SYNC_COMPLETED";
677
+ readonly totalProcessed: number;
678
+ readonly failedCount: number;
679
+ };
680
+ type SyncEventListener = (event: SyncLifecycleEvent) => void;
649
681
  interface CheckInRequest {
650
682
  readonly rallyId: string;
651
683
  readonly userId: string | null;
@@ -685,6 +717,9 @@ interface ClientOptions {
685
717
  readonly userId?: string | null;
686
718
  readonly anonymousSessionId?: string;
687
719
  readonly offlineQueue?: OfflineQueue;
720
+ readonly conflictResolutionPolicy?: ConflictResolutionPolicy;
721
+ /** Alias for conflictResolutionPolicy. */
722
+ readonly conflictPolicy?: ConflictResolutionPolicy;
688
723
  }
689
724
  type StorageOrOptions = StampStorage | ClientOptions;
690
725
  declare class StampRallyClient {
@@ -697,11 +732,16 @@ declare class StampRallyClient {
697
732
  get syncState(): SyncState;
698
733
  get pendingCount(): number;
699
734
  get rejectedHistory(): ReadonlyArray<RejectedOperationHistoryEntry>;
735
+ getSyncRevision(): number;
700
736
  get queueCapability(): OfflineQueueCapability;
701
737
  discardRejected(operationId: string): Promise<boolean>;
702
738
  retryRejected(operationId: string): Promise<boolean>;
739
+ dismissRejectedOperation(operationId: string): Promise<boolean>;
740
+ retryOperation(operationId: string): Promise<boolean>;
703
741
  subscribe(listener: ClientListener): () => void;
704
742
  subscribeEvents(listener: ClientEventListener): () => void;
743
+ subscribeSyncEvents(listener: SyncEventListener): () => void;
744
+ subscribeSyncState(listener: () => void): () => void;
705
745
  init(): Promise<UserRallyState>;
706
746
  initialize(): Promise<UserRallyState>;
707
747
  switchUser(newUserId: string | null): Promise<UserRallyState>;
@@ -820,4 +860,4 @@ type SnapshotTokenVerification<T extends SnapshotTokenPayload = SnapshotTokenPay
820
860
  declare function createSignedSnapshotToken<T extends SnapshotTokenPayload>(payload: T, secretKey: SnapshotSecretKey): Promise<string>;
821
861
  declare function verifySnapshotToken<T extends SnapshotTokenPayload = SnapshotTokenPayload>(token: string, secretKey: SnapshotSecretKey, now?: number): Promise<SnapshotTokenVerification<T>>;
822
862
 
823
- export { type AdminRallyConfig, type CheckInCondition, type CheckInOptions, type CheckInRequest, type CheckInResult, type CheckInSuccess, type ClaimOptions, type ClaimRequest, type ClaimResult, type ClaimSuccess, type ClaimTicketOptions, type ClientError, type ClientEvent, type ClientEventListener, type ClientListener, type ClientOptions, type CompositeConditionFailure, type ConditionMatch, type ConditionMismatch, ConfigValidationError, type ConsumeResult, type ConsumeRewardParams, type CustomValidationContext, type CustomValidator, DEFAULT_SHEET_THEME, type DetectorError, type DetectorErrorCode, type DetectorKind, type DetectorResult, type ExternalReference, type FontFamily, type GeoDetectorOptions, type GeoVerificationContext, MemoryQueueStorage as InMemoryOfflineQueueStorage, InMemoryStorage, IndexedDBAdapter, type IndexedDBAdapterOptions, type IndexedDBOfflineQueueOptions, IndexedDBOfflineQueueStorage, type InventoryAggregationMode, LocalStorageAdapter, type LocalStorageAdapterOptions, type LocalStorageFailureMode, type LocaleDictionary, type LocalizedString, type LocalizedText, type MergeConflictOptions, type NfcDetectorOptions, type NfcVerificationContext, type OfflineConflict, type OfflineConflictResult, type OfflineOperation, type OfflineOperationError, type OfflineOperationLifecycleStatus, type OfflineOperationResponse, type OfflineOperationStatus, OfflineQueue, type OfflineQueueCapability, type OfflineQueueOptions, type OfflineQueueStorage, type OfflineResult, type OfflineSender, type OfflineSyncResultEvent, type OfflineSyncResultListener, type ParseResult, type PasscodeCondition$1 as PasscodeCondition, type ProcessStampValue, type PublicCheckInCondition, type PublicConfigSafety, type PublicRallyConfig, type PublicReward, type PublicSpotItem, type QrDetectorOptions, type QrVerificationContext, type QueueOperationStatus, type RallyConfig, type RallyInventory, type RallyInventoryState, type RallySnapshot, type RedemptionMethod, type RejectedOperation, type RejectedOperationHistoryEntry, type Result, type Reward, type RewardConsumeError, type RewardState, type RewardStatus, type RewardType, type RewardUnlockCondition, type SecureTokenError, type SecureTokenErrorCode, type SecureTokenOptions, type SecureTokenPayload, type SecureTokenSecretKey, type SecureTokenVerification, type SheetTheme, type SlotShape, type SnapshotSecretKey, type SnapshotTokenError, type SnapshotTokenErrorCode, type SnapshotTokenPayload, type SnapshotTokenVerification, type SpotItem, type SpotStatus, type StampError, StampRallyClient, type StampRallyProgress, type StampRallyState, type StampRecord, type StampStorage, StorageAdapterError, type StorageAdapterErrorCode, type StorageLike, type StorageOperation, type StorageWarningHandler, type SupportedLocale, type SyncAdapter, type SyncConflictPolicy, type SyncRetryOptions, type SyncState, THEME_PRESETS, type ThemePreset, type ThemePresetId, type UserRallyState, type ValidationError, type Validator, type VerificationContext, assertPublicConfig, calculateDistanceMeters, calculateProgress, consumeReward, createAnonymousSessionId, createClaimTicketNumber, createSecureToken, createSignedSnapshotToken, createUniqueClaimTicketNumber, evaluateCondition, evaluateConditionDetailed, evaluateSpotStatus, exportProgressToken, getCurrentGeoContext, getOrderedSpots, getSpotStatus, importProgressToken, isGeolocationSupported, isNfcSupported, isPublicConfig, isQrSupported, isRewardState, isStampRallyState, issueClaimTicketNumber, normalizePasscode, offlineOperationId, parseAdminConfig, parsePublicConfig, processStamp, readNfcContext, readQrContext, reconcileRewardStates, resolveLocalizedText, resolveRallyStateConflict, safeParseAdminConfig, safeParsePublicConfig, sanitizeAdminConfig, storageKey, toLocalizedString, toPublicConfig, updateLocalizedField, validatePublicConfigSafety, validateRallyConfigRelations, verifyPasscode, verifySecureToken, verifySnapshotToken };
863
+ export { type AdminRallyConfig, type CheckInCondition, type CheckInOptions, type CheckInRequest, type CheckInResult, type CheckInSuccess, type ClaimOptions, type ClaimRequest, type ClaimResult, type ClaimSuccess, type ClaimTicketOptions, type ClientError, type ClientEvent, type ClientEventListener, type ClientListener, type ClientOptions, type CompositeConditionFailure, type ConditionMatch, type ConditionMismatch, ConfigValidationError, type ConflictResolutionPolicy, type ConsumeResult, type ConsumeRewardParams, type CustomValidationContext, type CustomValidator, DEFAULT_SHEET_THEME, type DetectorError, type DetectorErrorCode, type DetectorKind, type DetectorResult, type ExternalReference, type FontFamily, type GeoDetectorOptions, type GeoVerificationContext, MemoryQueueStorage as InMemoryOfflineQueueStorage, InMemoryStorage, IndexedDBAdapter, type IndexedDBAdapterOptions, type IndexedDBOfflineQueueOptions, IndexedDBOfflineQueueStorage, type InventoryAggregationMode, LocalStorageAdapter, type LocalStorageAdapterOptions, type LocalStorageFailureMode, type LocaleDictionary, type LocalizedString, type LocalizedText, type MergeConflictOptions, type NfcDetectorOptions, type NfcVerificationContext, type OfflineConflict, type OfflineConflictResult, type OfflineOperation, type OfflineOperationError, type OfflineOperationLifecycleStatus, type OfflineOperationResponse, type OfflineOperationStatus, OfflineQueue, type OfflineQueueCapability, type OfflineQueueChangeListener, type OfflineQueueOptions, type OfflineQueueStorage, type OfflineResult, type OfflineSender, type OfflineSyncResultEvent, type OfflineSyncResultListener, type ParseResult, type PasscodeCondition$1 as PasscodeCondition, type ProcessStampValue, type PublicCheckInCondition, type PublicConfigSafety, type PublicRallyConfig, type PublicReward, type PublicSpotItem, type QrDetectorOptions, type QrVerificationContext, type QueueOperationStatus, type RallyConfig, type RallyInventory, type RallyInventoryState, type RallySnapshot, type RedemptionMethod, type RejectedOperation, type RejectedOperationHistoryEntry, type Result, type Reward, type RewardConsumeError, type RewardState, type RewardStatus, type RewardType, type RewardUnlockCondition, type SecureTokenError, type SecureTokenErrorCode, type SecureTokenOptions, type SecureTokenPayload, type SecureTokenSecretKey, type SecureTokenVerification, type SheetTheme, type SlotShape, type SnapshotSecretKey, type SnapshotTokenError, type SnapshotTokenErrorCode, type SnapshotTokenPayload, type SnapshotTokenVerification, type SpotItem, type SpotStatus, type StampError, StampRallyClient, type StampRallyProgress, type StampRallyState, type StampRecord, type StampStorage, StorageAdapterError, type StorageAdapterErrorCode, type StorageLike, type StorageOperation, type StorageWarningHandler, type SupportedLocale, type SyncAdapter, type SyncConflictPolicy, type SyncEventListener, type SyncLifecycleEvent, type SyncRetryOptions, type SyncState, THEME_PRESETS, type ThemePreset, type ThemePresetId, type UserRallyState, type ValidationError, type Validator, type VerificationContext, assertPublicConfig, calculateDistanceMeters, calculateProgress, consumeReward, createAnonymousSessionId, createClaimTicketNumber, createSecureToken, createSignedSnapshotToken, createUniqueClaimTicketNumber, evaluateCondition, evaluateConditionDetailed, evaluateSpotStatus, exportProgressToken, getCurrentGeoContext, getOrderedSpots, getSpotStatus, importProgressToken, isGeolocationSupported, isNfcSupported, isPublicConfig, isQrSupported, isRewardState, isStampRallyState, issueClaimTicketNumber, normalizePasscode, offlineOperationId, parseAdminConfig, parsePublicConfig, processStamp, readNfcContext, readQrContext, reconcileRewardStates, resolveLocalizedText, resolveRallyStateConflict, rollbackOptimisticOperation, safeParseAdminConfig, safeParsePublicConfig, sanitizeAdminConfig, storageKey, toLocalizedString, toPublicConfig, updateLocalizedField, validatePublicConfigSafety, validateRallyConfigRelations, verifyPasscode, verifySecureToken, verifySnapshotToken };