/** * Two-phase seed pack apply + clear. * * Phase 1: create scalar rows (no pack FK wiring). * Phase 2: update relationship fields via seedKey → instanceId map. * Idempotent on packId + version + tenantId via SampleDataRow. */ import type { IR } from '../ir.js'; import type { EntityInstance, Store } from '../runtime-engine.js'; import { type SeedPack } from './types.js'; export type StoreProvider = (entityName: string) => Store; export interface ApplySeedPackOptions { ir: IR; pack: SeedPack; tenantId: string; getStore: StoreProvider; /** Inject tenantId on every created row when true (default true). */ injectTenantId?: boolean; } export interface ApplySeedPackResult { applied: boolean; skipped: boolean; reason?: string; created: number; related: number; seedKeyToId: Record; } export interface ClearSeedPackOptions { tenantId: string; getStore: StoreProvider; packId?: string; version?: string; /** Entity names that may have been seeded (from pack or IR). */ entities: string[]; } export interface ClearSeedPackResult { deletedInstances: number; deletedTrackingRows: number; } export declare function applySeedPack(options: ApplySeedPackOptions): Promise; export declare function clearSeedPack(options: ClearSeedPackOptions): Promise; /** Test helper: in-memory Store implementation. */ export declare function createMemorySeedStore(generateId?: () => string): Store; //# sourceMappingURL=apply.d.ts.map