import type { Knex } from 'knex';
import { BelongsToRelation, HasManyRelation, HasOneRelation, type RelatedModelCtor, type RelationshipModel } from './relation.js';
interface RelationshipMethods {
    hasOne<T extends RelationshipModel>(this: RelationshipModel, Related: RelatedModelCtor<T>, localKey?: number | string, foreignKey?: string): HasOneRelation<T>;
    hasMany<T extends RelationshipModel>(this: RelationshipModel, Related: RelatedModelCtor<T>, localKey?: number | string, foreignKey?: string): HasManyRelation<T>;
    belongsTo<T extends RelationshipModel>(this: RelationshipModel, Related: RelatedModelCtor<T>, foreignKey?: string, ownerKey?: string): BelongsToRelation<T>;
}
/** Builds relationship methods that run against the active Knex instance. */
declare const createRelationshipMethods: (getDB: () => Knex) => RelationshipMethods;
export { createRelationshipMethods };
