import type { BackupAndSyncAnalyticsAction } from "../analytics/index.mjs"; import type { ProfileId } from "../authentication/index.mjs"; import type { BackupAndSyncContext } from "../types.mjs"; /** * Compares metadata between local and user storage, applying the most recent version. * * @param options - Configuration object for metadata comparison. * @param options.context - The backup and sync context containing controller and messenger. * @param options.localMetadata - The local metadata object. * @param options.localMetadata.value - The local metadata value. * @param options.localMetadata.lastUpdatedAt - The local metadata timestamp. * @param options.userStorageMetadata - The user storage metadata object. * @param options.userStorageMetadata.value - The user storage metadata value. * @param options.userStorageMetadata.lastUpdatedAt - The user storage metadata timestamp. * @param options.applyLocalUpdate - Function to apply the user storage value locally. * @param options.validateUserStorageValue - Function to validate user storage data. * @param options.analytics - Optional analytics configuration for tracking updates. * @param options.analytics.action - The analytics action for the event. * @param options.analytics.profileId - The profile ID for analytics. * @returns Promise resolving to true if local data should be pushed to user storage. */ export declare function compareAndSyncMetadata({ context, localMetadata, userStorageMetadata, applyLocalUpdate, validateUserStorageValue, analytics, }: { context: BackupAndSyncContext; localMetadata?: { value?: T; lastUpdatedAt?: number; }; userStorageMetadata?: { value?: T; lastUpdatedAt?: number; }; applyLocalUpdate: (value: T) => Promise | void; validateUserStorageValue: (value: T | undefined) => boolean; analytics?: { action: BackupAndSyncAnalyticsAction; profileId: ProfileId; }; }): Promise; //# sourceMappingURL=metadata.d.mts.map