import { type ICultureLoadOption } from "./culture-load-option";
import { IEntityLoadConfigurationBuilder } from "./entity-load-configuration-builder";
import { type IPropertyLoadOption } from "./property-load-option";
import { type IRelationLoadOption } from "./relation-load-option";
export interface IEntityLoadConfiguration {
    /**
     * Gets the culture load option.
     */
    cultureLoadOption: ICultureLoadOption;
    /**
     * Gets the property load option.
     */
    propertyLoadOption: IPropertyLoadOption;
    /**
     * Gets the relation load option.
     */
    relationLoadOption: IRelationLoadOption;
    /**
     * Creates a {@link IEntityLoadConfigurationBuilder} from the current {@link IEntityLoadConfiguration}.
     * The builder can extend or overwrite the configuration of the current {@link IEntityLoadConfiguration}.
     */
    builder(): IEntityLoadConfigurationBuilder;
    /**
     * Creates a deep clone of this instance.
     */
    deepClone(): IEntityLoadConfiguration;
}
export declare class EntityLoadConfiguration implements IEntityLoadConfiguration {
    /**
     * Only load system properties.
     */
    static Minimal: IEntityLoadConfiguration;
    /**
     * Gets the entities in default culture with all properties and no relations.
     */
    static Default: IEntityLoadConfiguration;
    /**
     * Get the entities in default culture with all properties and relations.
     */
    static DefaultCultureFull: IEntityLoadConfiguration;
    /**
     * Get the entity in all installed cultures with all properties and relations.
     */
    static Full: IEntityLoadConfiguration;
    cultureLoadOption: ICultureLoadOption;
    propertyLoadOption: IPropertyLoadOption;
    relationLoadOption: IRelationLoadOption;
    constructor(cultureLoadOption?: ICultureLoadOption, propertyLoadOption?: IPropertyLoadOption, relationLoadOption?: IRelationLoadOption);
    builder(): IEntityLoadConfigurationBuilder;
    deepClone(): IEntityLoadConfiguration;
}
