/** * Seed Tracker * * Manages the internal seed tracking collection (_momentum_seeds). * Tracks seeded entities to ensure idempotency across server restarts. */ import type { DatabaseAdapter } from '@momentumcms/core'; import type { SeedTrackingDocument } from '@momentumcms/core'; /** * Data required to create a new seed tracking record. */ export interface CreateSeedTrackingData { seedId: string; collection: string; documentId: string; checksum: string; } /** * Seed tracker interface for managing seed tracking records. */ export interface SeedTracker { /** * Find a seed tracking record by its seedId. * * @param seedId - The unique seed identifier * @returns The tracking record or null if not found */ findBySeedId(seedId: string): Promise; /** * Create a new seed tracking record. * * @param data - The tracking data * @returns The created tracking record */ create(data: CreateSeedTrackingData): Promise; /** * Update the checksum of an existing seed tracking record. * * @param seedId - The unique seed identifier * @param checksum - The new checksum * @returns The updated tracking record */ updateChecksum(seedId: string, checksum: string): Promise; /** * Delete a seed tracking record by its seedId. * * @param seedId - The unique seed identifier * @returns True if deleted, false if not found */ delete(seedId: string): Promise; } /** * Creates a seed tracker instance for managing seed tracking records. * * @param adapter - The database adapter to use * @returns Seed tracker instance * * @example * ```typescript * const tracker = createSeedTracker(adapter); * const existing = await tracker.findBySeedId('admin-user'); * if (!existing) { * await tracker.create({ * seedId: 'admin-user', * collection: 'user', * documentId: 'uuid-here', * checksum: 'sha256-hash', * }); * } * ``` */ export declare function createSeedTracker(adapter: DatabaseAdapter): SeedTracker;