/** * Base factory for creating mock data with type safety */ import type { MockDataFactory } from '../types'; /** * Base factory class for creating mock data */ export declare abstract class BaseFactory { /** * Create a single instance with optional overrides */ abstract create(overrides?: Partial): T; /** * Create multiple instances */ createMany(count: number, overrides?: Partial): T[]; /** * Create instances with different overrides for each */ createManyWithOverrides(overridesArray: Array>): T[]; /** * Create a sequence of instances with incremental values */ createSequence(count: number, sequenceFn: (index: number) => Partial): T[]; /** * Create instances with random variations */ createVariations(count: number, variationFn: () => Partial): T[]; } /** * Simple factory function creator */ export declare function createFactory(factoryFn: (overrides?: Partial) => T): MockDataFactory; /** * Factory builder for creating complex factories */ export declare class FactoryBuilder { private baseFn; private traits; private sequences; private afterBuildHooks; constructor(baseFn: (overrides?: Partial) => T); /** * Add a trait (named set of attributes) */ trait(name: string, attributes: Partial): this; /** * Add a sequence for generating incremental values */ sequence(key: K, sequenceFn: (n: number) => T[K]): this; /** * Add after-build hook */ afterBuild(fn: (instance: T) => T): this; /** * Build the factory */ build(): FactoryInstance; } /** * Factory instance with trait and sequence support */ export declare class FactoryInstance { private baseFn; private traits; private sequences; private afterBuildHooks; constructor(baseFn: (overrides?: Partial) => T, traits: Map>, sequences: Map any>, afterBuildHooks: Array<(instance: T) => T>); /** * Create instance with optional traits and overrides */ create(overrides?: Partial, traitNames?: string[]): T; /** * Create with specific traits */ withTraits(...traitNames: string[]): { create: (overrides?: Partial) => T; createMany: (count: number, overrides?: Partial) => T[]; }; /** * Create multiple instances */ createMany(count: number, overrides?: Partial, traitNames?: string[]): T[]; } /** * Create a factory builder */ export declare function defineFactory(baseFn: (overrides?: Partial) => T): FactoryBuilder; /** * Utility for creating factories with default values */ export declare function createFactoryWithDefaults(defaults: T, customizations?: Partial T[keyof T]>>): MockDataFactory; //# sourceMappingURL=base-factory.d.ts.map