import type { _MTL4AccelerationStructureDescriptor } from "./MTL4AccelerationStructureDescriptor.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { MTLMotionBorderMode } from "./MTLMotionBorderMode.js";
export declare class _MTL4PrimitiveAccelerationStructureDescriptor extends _MTL4AccelerationStructureDescriptor {
    static alloc(): _MTL4PrimitiveAccelerationStructureDescriptor;
    static new(): _MTL4PrimitiveAccelerationStructureDescriptor;
    init(): _MTL4PrimitiveAccelerationStructureDescriptor;
    /**
     * Associates the array of geometry descriptors that comprise this primitive acceleration structure. If you enable keyframe motion by setting property ``motionKeyframeCount`` to a value greater than `1`, then all geometry descriptors this array references need to be motion geometry descriptors and have a number of primitive buffers equals to ``motionKeyframeCount``. Example of motion geometry descriptors include: ``MTL4AccelerationStructureMotionTriangleGeometryDescriptor``, ``MTL4AccelerationStructureMotionBoundingBoxGeometryDescriptor``, ``MTL4AccelerationStructureMotionCurveGeometryDescriptor``.
     */
    geometryDescriptors(): _NSArray | null;
    setGeometryDescriptors$(value: _NSArray | null): void;
    /**
     * Configures the behavior when the ray-tracing system samples the acceleration structure before the motion start time. Use this property to control the behavior when the ray-tracing system samples the acceleration structure at a time prior to the one you set for ``motionStartTime``. The default value of this property is `MTLMotionBorderModeClamp`.
     */
    motionStartBorderMode(): MTLMotionBorderMode;
    setMotionStartBorderMode$(value: MTLMotionBorderMode): void;
    /**
     * Configures the motion border mode. This property controls what happens if Metal samples the acceleration structure after ``motionEndTime``. Its default value is `MTLMotionBorderModeClamp`.
     */
    motionEndBorderMode(): MTLMotionBorderMode;
    setMotionEndBorderMode$(value: MTLMotionBorderMode): void;
    /**
     * Configures the motion start time for this geometry. The default value of this property is `0.0f`.
     */
    motionStartTime(): number;
    setMotionStartTime$(value: number): void;
    /**
     * Configures the motion end time for this geometry. The default value of this property is `1.0f`.
     */
    motionEndTime(): number;
    setMotionEndTime$(value: number): void;
    /**
     * Sets the motion keyframe count. This property's default is `1`, indicating no motion.
     */
    motionKeyframeCount(): number;
    setMotionKeyframeCount$(value: number): void;
}
