import type { Faker } from "@faker-js/faker"; export type FakerGenerator = (faker: Faker) => T; export type ObjectGenerator = FakerGenerator; export type ConstantGenerator = T[] | FakerGenerator; export type ObjectSource = Partial | ObjectGenerator>; export interface IObjectBuilder { assign(object: ObjectSource): IObjectBuilder; seed(seed?: number): IObjectBuilder; create(): T; createMany(quantity: number): T[]; createAndPick(paths: Array): Partial; createManyAndPick(quantity: number, paths: Array): Partial[]; } export interface IConstantBuilder { seed(seed?: number): IConstantBuilder; entry(): T; entries(quantity: number): T[]; sample(quantity: number): T[]; }