import { ILoadOption } from "./load-option";
import { LoadOption } from "./load-options";
import { IRelationSpecification } from "./relation-specification";
/**
 * Specifies which relations to load.
 */
export interface IRelationLoadOption extends ILoadOption {
    /**
     * Gets a list of relations that need to be loaded.
     * This is only useful when {@link LoadOption} is {@link LoadOption.Custom}.
     */
    relations: Array<IRelationSpecification>;
    /**
     * Can limit the number of related items that are returned.
     */
    maxRelatedItems?: number;
    /**
     * Creates a deep clone of this instance.
     */
    deepClone(): IRelationLoadOption;
}
export declare class RelationLoadOption implements IRelationLoadOption {
    /**
     * Load no relations.
     */
    static readonly None: Readonly<IRelationLoadOption>;
    /**
     * Load all relations.
     */
    static readonly All: Readonly<IRelationLoadOption>;
    loadOption: LoadOption;
    relations: Array<IRelationSpecification>;
    maxRelatedItems?: number;
    constructor(param?: LoadOption | Array<string> | Array<IRelationSpecification> | RelationLoadOption);
    deepClone(): IRelationLoadOption;
}
