import { ManyToManyRelationContract, LucidModel, LucidRow, ModelObject } from '@ioc:Adonis/Lucid/Orm';
import { RelationCallback, FactoryModelContract, FactoryRelationContract, FactoryBuilderQueryContract } from '@ioc:Adonis/Lucid/Factory';
import { BaseRelation } from './Base';
/**
 * Many to many factory relation
 */
export declare class ManyToMany extends BaseRelation implements FactoryRelationContract {
    relation: ManyToManyRelationContract<LucidModel, LucidModel>;
    private attributesForPivotTable;
    constructor(relation: ManyToManyRelationContract<LucidModel, LucidModel>, factory: () => FactoryBuilderQueryContract<FactoryModelContract<LucidModel>>);
    /**
     * Make relationship and set it on the parent model instance
     */
    make(parent: LucidRow, callback?: RelationCallback, count?: number): Promise<void>;
    /**
     * Define pivot attributes
     */
    pivotAttributes(attributes: ModelObject | ModelObject[]): this;
    /**
     * Persist relationship and set it on the parent model instance
     */
    create(parent: LucidRow, callback?: RelationCallback, count?: number): Promise<void>;
}
