import { AttributeResolutionContext, resolveOptions } from '../internal';
export declare class DepthInfo {
    /**
     * The max depth set if the user specified to not use max depth
     */
    static readonly maxDepthLimit: number;
    /**
     * The maximum depth that we can resolve entity attributes.
     * This value is set in resolution guidance.
     */
    maxDepth: number;
    /**
     * The current depth that we are resolving at. Each entity attribute that we resolve
     * into adds 1 to depth.
     */
    currentDepth: number;
    /**
     * Indicates if the maxDepth value has been hit when resolving
     */
    maxDepthExceeded: boolean;
    constructor();
    /**
     * Resets the instance to its initial values.
     * @internal
     */
    reset(): void;
    /**
     * Creates a copy of this depth info instance.
     * @internal
     */
    copy(): DepthInfo;
    /**
     * Updates this depth info to the next level.
     * @internal
     */
    updateToNextLevel(resOpt: resolveOptions, isPolymorphic: boolean, arc?: AttributeResolutionContext): void;
}
