type FactoryState = Partial | ((record: TRecord) => Partial); type FactorySequence = Partial | ((index: number) => Partial); type FactoryMakeResult = Counted extends true ? TRecord[] : TRecord; declare class Factory { private quantity; private counted; private sequenceIndex; private stateTransforms; private sequenceItems; private parentAssociations; private children; private afterMakingCallbacks; private afterCreatingCallbacks; protected model?: { create(attributes: Record): Promise<{ toObject(): object; }>; }; protected definition(): TRecord; protected clone(): this; count(quantity: number): Factory; state(state: FactoryState): Factory; sequence(...items: Array>): Factory; for(parent: { id?: unknown; getRepository?: () => { getTable(): { name: string; }; }; }, foreignKey?: keyof TRecord & string): Factory; recycle(parent: { id?: unknown; getRepository?: () => { getTable(): { name: string; }; }; }, foreignKey?: keyof TRecord & string): Factory; afterMaking(callback: (record: TRecord) => void): Factory; afterCreating(callback: (record: TRecord) => void | Promise): Factory; has(factory: Factory, foreignKey?: keyof TRelated & string): Factory; make(overrides?: Partial): FactoryMakeResult; create(overrides?: Partial): Promise>; protected makeOne(overrides?: Partial): TRecord; protected createOne(overrides?: Partial): Promise; protected persistCreated(record: TRecord): Promise; protected insertable(record: TRecord): Partial; protected persist(values: Partial): Promise; } export type { FactoryMakeResult }; export { Factory };