import { IExtendedContentHubClient } from "../clients/extended-client"; import { IRelation } from "../contracts/base/relation"; import { IRelationDefinition } from "../contracts/base/relation-definition"; import { IChildToManyParentsRelation } from "../contracts/base/relations/child-to-many-parents-relation"; import { IChildToOneParentRelation } from "../contracts/base/relations/child-to-one-parent-relation"; import { IParentToManyChildrenRelation } from "../contracts/base/relations/parent-to-many-children-relation"; import { IParentToOneChildRelation } from "../contracts/base/relations/parent-to-one-child-relation"; export interface IRelationFactory { /** * Creates a {@link IChildToManyParentsRelation}. * @param definition - The relation definition * @returns A new relation. */ createChildToManyParentsRelation(definition: IRelationDefinition): IChildToManyParentsRelation; /** * Creates a {@link IChildToOneParentRelation}. * @param definition - The relation definition * @returns A new relation. */ createChildToOneParentRelation(definition: IRelationDefinition): IChildToOneParentRelation; /** * Creates a {@link IParentToManyChildrenRelation}. * @param definition - The relation definition * @returns A new relation. */ createParentToManyChildrenRelation(definition: IRelationDefinition): IParentToManyChildrenRelation; /** * Creates a {@link IParentToOneChildRelation}. * @param definition - The relation definition * @returns A new relation. */ createParentToOneChildRelation(definition: IRelationDefinition): IParentToOneChildRelation; /** * Creates a {@link IRelation}. * @param definition - The relation definition * @returns A new relation. */ createRelation(definition: IRelationDefinition): IRelation; /** * Creates a new {@link IRelation} collection. * @param definition - The relation definition * @returns A collection of relations. */ createRelations(definitions: Array): Array; } export declare class RelationFactory implements IRelationFactory { private readonly _client; constructor(client: IExtendedContentHubClient); createChildToManyParentsRelation(definition: IRelationDefinition): IChildToManyParentsRelation; createChildToOneParentRelation(definition: IRelationDefinition): IChildToOneParentRelation; createParentToManyChildrenRelation(definition: IRelationDefinition): IParentToManyChildrenRelation; createParentToOneChildRelation(definition: IRelationDefinition): IParentToOneChildRelation; createRelation(definition: IRelationDefinition): IRelation; createRelations(definitions: Array): Array; }