export declare type AttributeFn = () => Partial; export declare type ConstructorParameterFn = () => ConstructorParameters; export declare type AnyConstructor = { new (...args: any[]): any; }; export declare class ClassFactory { extraAttributes?: AttributeFn> | Partial>; constructorParams?: ConstructorParameterFn | ConstructorParameters; clazz: T; constructor(clazz: T, constructorParameterFn?: ConstructorParameterFn | ConstructorParameters, attributeCreatorFn?: AttributeFn> | Partial>); private parseFnOrValue; generate: (attributeOverrides?: AttributeFn> | Partial> | undefined) => InstanceType; generateMany: (howMany: number, attributeOverrides?: AttributeFn> | Partial> | undefined) => Array; extend: (options: ClassFactoryExtendOptions) => ClassFactory; } export interface ClassFactoryExtendOptions { constructorParams?: ConstructorParameterFn | ConstructorParameters; extraAttributes?: AttributeFn> | Partial>; }