import type { PartialDeep } from 'type-fest';
import { BuilderGeneratorFunction } from './types';
declare type OverridesFn<T> = (fixture: T) => void;
declare type Overrides<T> = PartialDeep<T> | OverridesFn<T>;
declare type CreateArrayParameterFn<T> = (index: number, create: (overrides?: Overrides<T>) => T) => T;
declare type CreateArrayParameter<T> = PartialDeep<T> | Array<PartialDeep<T>> | CreateArrayParameterFn<T>;
export default class Fixture<T> {
    private omittedFields;
    private builders;
    private instanceCount;
    constructor(builders: BuilderGeneratorFunction<T>[], extendFixture: Array<Fixture<T>>);
    create(overrides?: Overrides<T>): T;
    createArrayWith(length: number, params?: CreateArrayParameter<T>): T[];
    omit(...fields: [keyof T]): this;
}
export {};
