/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */ /** */
import { DeepImmutable } from '@babylonjs/core';
import { MergedIfcProductMeshesRenderInfoState } from './MergedIfcProductMeshRenderInfoState';
import { ProductMeshesGroupRenderInfo } from './ProductMeshesGroupRenderInfo';
/**
 * Base class for recording render property statistics for a collection of IFC product meshes.
 * @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported.
 */
export declare abstract class BaseProductMeshesGroupRenderInfo implements ProductMeshesGroupRenderInfo {
    readonly parent?: ProductMeshesGroupRenderInfo | undefined;
    protected _state: MergedIfcProductMeshesRenderInfoState;
    /**
     * Constructor.
     * @param parent - The parent render info object. If not set, this is the root object.
     */
    constructor(parent?: ProductMeshesGroupRenderInfo | undefined);
    /**
     * Check if the current state is valid.
     */
    private get isValid();
    /**
     * Get the current state of render properties.
     */
    get state(): DeepImmutable<MergedIfcProductMeshesRenderInfoState>;
    private readonly _lastLoggedState;
    /**
     * Update the render properties based on the current and previous render properties.
     * @param currentRenderProperty - The current render property.
     * @param prevRenderProperty - The previous render property.
     */
    updateFromRenderProperty(currentRenderProperty: number, prevRenderProperty: number): void;
    /**
     * Log the current state if it differs from the last logged state.
     */
    private logIfCountsDiffer;
    /**
     * Set the state of the render properties in {@link state} to 0.
     */
    protected clearState(): void;
}
//# sourceMappingURL=BaseProductMeshesGroupRenderInfo.d.ts.map