///
import 'reflect-metadata';
import * as mongoose from 'mongoose';
export * from './method';
export * from './prop';
export * from './hooks';
export * from './plugin';
export { getClassForDocument } from './utils';
export declare type InstanceType = T & mongoose.Document;
export declare type ModelType = mongoose.Model> & T;
export interface GetModelForClassOptions {
existingMongoose?: mongoose.Mongoose;
schemaOptions?: mongoose.SchemaOptions;
existingConnection?: mongoose.Connection;
}
export declare class Typegoose {
getModelForClass(t: T, {existingMongoose, schemaOptions, existingConnection}?: GetModelForClassOptions): mongoose.Model> & this & T;
setModelForClass(t: T, {existingMongoose, schemaOptions, existingConnection}?: GetModelForClassOptions): mongoose.Model> & this & T;
private buildSchema(name, schemaOptions, sch?);
}