import { Builder } from '../../database/builder';
import { Application } from '../../../foundation/application';
import { ModelBuilder } from '../builder';
import { Model } from '../model';
import { Repository } from '../repository';
export declare abstract class HasRelations {
    protected app: Application;
    protected parent: Model;
    protected model: Model;
    protected foreignKey: string;
    protected localKey: string;
    abstract eagerly(result: Repository, relation: string, queryCallback?: (query: ModelBuilder<any> & Builder) => void): Promise<void>;
    abstract eagerlyMap(results: Repository[], relation: string, queryCallback?: (query: ModelBuilder<any> & Builder) => void): Promise<void>;
}
