import { RelationRole } from "../../contracts/base"; import CultureInfo from "../../culture-info"; import { IEntityLoadConfiguration } from "./entity-load-configuration"; import { LoadOption } from "./load-options"; import { IRelationSpecification } from "./relation-specification"; /** * An interface for a builder for instances of {@link IEntityLoadConfiguration}. */ export interface IEntityLoadConfigurationBuilder { /** * Indicates that entities should be loaded in the cultures specified by the load option. * @param loadOption - The load option */ inCultures(loadOption: LoadOption): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded in the specified cultures. * @param culture - The cultures */ inCultures(cultures: Array): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded in the specified culture. * @param culture - The culture */ inCulture(culture: CultureInfo): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded with the properties specified by the load option. * @param loadOption - The load option */ withProperties(loadOption: LoadOption): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded with the specified properties. * @param properties - The properties */ withProperties(properties: Array): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded with the specified property. * @param property - The name of the property */ withProperty(property: string): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded with the relations specified by the load option. * @param loadOption - The load option */ withRelations(loadOption: LoadOption): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded with the specified relations. * @param relations - The relations */ withRelations(relations: Array): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded with the specified relation specifications. * @param specifications - The relation specifications */ withRelations(specifications: Array): IEntityLoadConfigurationBuilder; /** * Indicates that entities should be loaded with the specified relation in the specified role. * @param relation - The name of the relation * @param role - The role of the relation */ withRelation(relation: string, role?: RelationRole): IEntityLoadConfigurationBuilder; /** * Gets the resulting instance of {@link IEntityLoadConfiguration}. */ build(): IEntityLoadConfiguration; } export declare class EntityLoadConfigurationBuilder implements IEntityLoadConfigurationBuilder { private readonly _entityLoadConfiguration; constructor(entityLoadConfiguration?: IEntityLoadConfiguration); inCultures(option: LoadOption | Array): IEntityLoadConfigurationBuilder; inCulture(culture: CultureInfo): IEntityLoadConfigurationBuilder; withProperties(option: LoadOption | Array): IEntityLoadConfigurationBuilder; withProperty(property: string): IEntityLoadConfigurationBuilder; withRelations(option: LoadOption | Array): IEntityLoadConfigurationBuilder; withRelation(relation: string, role?: RelationRole): IEntityLoadConfigurationBuilder; build(): Readonly; }