import type { BimProductMeshPreMerge } from './BimProductMesh';
/**
 * Contextual information provided by the merge algorithm to the {@link CullOnCameraMovePredicate}.
 * Contains data that is known at merge time but not yet assigned to the mesh.
 */
export interface CullOnCameraMoveContext {
    /**
     * Distance at which the mesh should be hidden from the camera.
     * A value `< 0` means the mesh is never hidden by distance.
     * A value `>= 0` means the mesh is hidden when the camera is farther than this value.
     */
    readonly distance: number;
}
/**
 * Predicate that determines whether a mesh should be culled (hidden) when the camera moves.
 *
 * @param mesh - The product mesh to evaluate.
 * @param context - Optional contextual information from the merge algorithm.
 * @returns `true` if the mesh should be culled on camera move, `false` otherwise.
 *
 * @see {@link BimProductMeshPreMerge}
 * @see {@link CullOnCameraMoveContext}
 */
export type CullOnCameraMovePredicate = (mesh: BimProductMeshPreMerge, context?: CullOnCameraMoveContext) => boolean;
//# sourceMappingURL=CullOnCameraMovePredicate.d.ts.map