import { Builder } from '../../database/builder';
import { ModelBuilder } from '../builder';
import { Model } from '../model';
import { PivotEntity } from '../pivot-model';
import { Repository } from '../repository';
import { HasRelations } from './has-relations.abstract';
export declare class BelongsToMany extends HasRelations {
    pivot: Model<PivotEntity>;
    foreignPivotKey: string;
    relatedPivotKey: string;
    constructor(parent: Model<any>, model: Model, Pivot?: any, foreignPivotKey?: string, relatedPivotKey?: string);
    getDefaultForeignPivotKey(): string;
    getDefaultRelatedPivotKey(): string;
    newPivot(Pivot?: any): Model<any>;
    eagerly(resultRepos: Repository, relation: string, queryCallback?: (query: ModelBuilder<any> & Builder) => void): Promise<void>;
    eagerlyMap(resultReposes: Repository[], relation: string, queryCallback?: (query: ModelBuilder<any> & Builder) => void): Promise<void>;
}
