import { RelationIdMetadataArgs } from "../metadata-args/RelationIdMetadataArgs"; import { EntityMetadata } from "./EntityMetadata"; import { RelationMetadata } from "./RelationMetadata"; import { SelectQueryBuilder } from "../query-builder/SelectQueryBuilder"; import { ObjectLiteral } from "../common/ObjectLiteral"; /** * Contains all information about entity's relation count. */ export declare class RelationIdMetadata { /** * Entity metadata where this column metadata is. */ entityMetadata: EntityMetadata; /** * Relation from which ids will be extracted. */ relation: RelationMetadata; /** * Relation name which need to count. */ relationNameOrFactory: string | ((object: any) => any); /** * Target class to which metadata is applied. */ target: Function | string; /** * Target's property name to which this metadata is applied. */ propertyName: string; /** * Alias of the joined (destination) table. */ alias?: string; /** * Extra condition applied to "ON" section of join. */ queryBuilderFactory?: (qb: SelectQueryBuilder) => SelectQueryBuilder; constructor(options: { entityMetadata: EntityMetadata; args: RelationIdMetadataArgs; }); /** * Sets relation id value from the given entity. * * todo: make it to work in embeds as well. */ setValue(entity: ObjectLiteral): void; /** * Builds some depend relation id properties. * This builder method should be used only after entity metadata, its properties map and all relations are build. */ build(): void; }