import * as mongoose from 'mongoose'; import { Association, IOptions } from './associations/Association'; import { SchemaMixin } from './SchemaMixin'; import { Serializer } from './Serializer'; declare module 'mongoose' { interface Schema { deleteField: string; model: mongoose.Model; belongsTo(foreignModelName: string, options?: IOptions, schemaOptions?: any): Association; polymorphic(foreignModelNames: string[], options?: IOptions, schemaOptions?: any): Association; hasOne(foreignModelName: string, options?: IOptions): Association; hasMany(foreignModelName: string, options?: IOptions): Association; indexAssociations(...associations: any[]): SchemaMixin; } interface Model { associate(as: string): Association; } interface DocumentQuery { populateAssociation(options: any): DocumentQuery; collectAssociation(options: any): DocumentQuery; reorder(ids: any): DocumentQuery; noop(): DocumentQuery; model: mongoose.Model; _model: mongoose.Model; _conditions: any; op: string; _explain(): any; explain(): void; } interface Aggregate { hydrateAssociation(options: any): Aggregate; populateAssociation(options: any): Aggregate; collectAssociation(options: any): Aggregate; where(options: any): Aggregate; singular(): Aggregate; _model: mongoose.Model; _pipeline: any[]; _explain(): any; explain(): void; } } export declare function mongooseAssociation(mongoose: any): void; export { Serializer }; //# sourceMappingURL=index.d.ts.map