import type { DatabaseAdapter, FieldDefinition } from "./types.js"; import type { SeedOptions, SeedSummary } from "./seederTypes.js"; export { autoFieldMap, seedTable } from "./seederTable.js"; export type { SeedOptions, SeedSummary } from "./seederTypes.js"; /** A model-like shape the seeder can drive (real BaseModel subclass or mock). */ interface SeedableModel { tableName: string; fields: Record; _db?: string; getDb?: () => DatabaseAdapter; name?: string; } /** * Seed an ORM model class with auto-generated fake data, based on field * definitions. Visible-but-resilient (P1): each row is wrapped, failures are * logged + counted + skipped (or re-raised under `strict`). * * @param ormClass - A model with static `tableName`, `fields`, and optionally * `getDb`/`_db`. * @param count - Number of rows to insert (default 10) * @param overrides - (legacy positional) Static field overrides. * @param seed - (legacy positional) PRNG seed for deterministic output. * @param opts - Seed options `{ overrides, clear, seed, strict }`. Options * supersede the legacy positional args when both are supplied. * @param fkPools - (internal) pre-resolved FK value pools from seedModels. * @returns A SeedSummary `{ seeded, failed, errors }`. */ export declare function seedOrm(ormClass: SeedableModel, count?: number, overrides?: Record, seed?: number, opts?: SeedOptions, fkPools?: Record): Promise; /** * Batch-seed several ORM models, ordering by their foreignKey dependency graph * (P4a). Parent tables seed before children (topological sort); when * `clear: true` the clear runs in REVERSE order so children are removed before * parents — no FK violations regardless of the order the caller lists models. * FK columns are resolved to real parent PKs so child rows reference an * existing parent. Mirrors Python `seed_models`. * * @param ormClasses - List of model classes to seed. * @param count - Rows per model (default 10). * @param opts - Seed options. `overrides` may be a flat dict applied to every * model, or a Map/record keyed by model to apply per-model overrides. * @returns `{ [modelName]: SeedSummary }` for each model seeded. */ export declare function seedModels(ormClasses: SeedableModel[], count?: number, opts?: SeedOptions & { overrides?: Record | Map>; }): Promise>;