import { ClassTransformOptions } from 'class-transformer';
import { SinonSandbox, SinonStatic, SinonStubbedInstance } from 'sinon';
import { SelectQueryBuilder } from 'typeorm';
import { TypeORMRawColumns } from './types/typeorm-raw-type.type';
export default class Stubber {
    private static queryBuilderStubber;
    static stubOne<T>(EntityClass: new () => T, options?: Partial<T>, classTransformOptions?: ClassTransformOptions): T;
    static stub<T>(EntityClass: new () => T, count?: number, options?: Partial<T> | undefined, classTransformOptions?: ClassTransformOptions): T[];
    static stubRaw<Entity, ClassName extends string, AdditionalFields extends string>(EntityClass: new () => Entity, count?: number, options?: Partial<TypeORMRawColumns<Entity, ClassName, AdditionalFields>> | undefined): Array<TypeORMRawColumns<Entity, ClassName, AdditionalFields>>;
    static stubRawOne<Entity, ClassName extends string, AdditionalFields extends string>(EntityClass: new () => Entity, options?: Partial<TypeORMRawColumns<Entity, ClassName, AdditionalFields>>): TypeORMRawColumns<Entity, ClassName, AdditionalFields>;
    static stubQueryBuilder<Entity>(sandbox: SinonStatic | SinonSandbox, EntityClass: new () => Entity, customStubOrStubs?: Entity | Entity[]): SinonStubbedInstance<SelectQueryBuilder<Entity>>;
}
export declare const stub: typeof Stubber.stub;
export declare const stubOne: typeof Stubber.stubOne;
export declare const stubQueryBuilder: typeof Stubber.stubQueryBuilder;
export declare const stubRaw: typeof Stubber.stubRaw;
export declare const stubRawOne: typeof Stubber.stubRawOne;
