import { Entity } from '../../model'; import { EntityCrudRepository } from '../../repositories/repository'; import { BelongsToDefinition, Getter, InclusionResolver } from '../relation.types'; export interface BelongsToAccessor { /** * Invoke the function to obtain HasManyRepository. */ (sourceId: SourceId, polymorphicTypes?: string | string[]): Promise; /** * Use `resolver` property to obtain an InclusionResolver for this relation. */ inclusionResolver: InclusionResolver; } /** * Enforces a BelongsTo constraint on a repository * If the target model is polymorphic, i.e. stored within different repositories, * supply the targetRepositoryGetter with a dictionary in the form of {[typeName: string]: repositoryGetter} */ export declare function createBelongsToAccessor(belongsToMetadata: BelongsToDefinition, targetRepositoryGetter: Getter> | { [repoType: string]: Getter>; }, sourceRepository: EntityCrudRepository): BelongsToAccessor;