import { Model, Schema, SchemaDefinition } from 'mongoose';
import { GenericObject, FactoryOptions, GlobalOptions, GlobalObjectIdOptions, GlobalDecimal128Options } from './types';
export declare class Mocker<T extends GenericObject = {}> {
    schema: Schema | Schema<T> | SchemaDefinition<T>;
    globalOptions: GlobalOptions;
    options: FactoryOptions<T>;
    constructor(model: Schema<T> | Model<T> | SchemaDefinition<T>, options?: FactoryOptions<T>);
    setGlobalObjectIdOptions(options: GlobalObjectIdOptions): this;
    setGlobalDecimal128Options(options: GlobalDecimal128Options): this;
    generate(staticFields?: Record<string, unknown>, overrideOptions?: FactoryOptions<T>): T;
}
export declare function factory<T extends GenericObject>(modelOrSchema: Schema<T> | Model<T>, options?: FactoryOptions<T>): Mocker<T>;
