import type { _MTLAccelerationStructureDescriptor } from "./MTLAccelerationStructureDescriptor.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { MTLMotionBorderMode } from "./MTLMotionBorderMode.js";
export declare class _MTLPrimitiveAccelerationStructureDescriptor extends _MTLAccelerationStructureDescriptor {
    static alloc(): _MTLPrimitiveAccelerationStructureDescriptor;
    static new(): _MTLPrimitiveAccelerationStructureDescriptor;
    init(): _MTLPrimitiveAccelerationStructureDescriptor;
    static descriptor(): _MTLPrimitiveAccelerationStructureDescriptor;
    /**
     * @brief Array of geometry descriptors. If motionKeyframeCount is greater than one all geometryDescriptors must be motion versions and have motionKeyframeCount of primitive buffers.
     */
    geometryDescriptors(): _NSArray | null;
    setGeometryDescriptors$(value: _NSArray | null): void;
    /**
     * @brief Motion border mode describing what happens if acceleration structure is sampled before motionStartTime. If not set defaults to MTLMotionBorderModeClamp.
     */
    motionStartBorderMode(): MTLMotionBorderMode;
    setMotionStartBorderMode$(value: MTLMotionBorderMode): void;
    /**
     * @brief Motion border mode describing what happens if acceleration structure is sampled after motionEndTime. If not set defaults to MTLMotionBorderModeClamp.
     */
    motionEndBorderMode(): MTLMotionBorderMode;
    setMotionEndBorderMode$(value: MTLMotionBorderMode): void;
    /** @brief Motion start time of this geometry. If not set defaults to 0.0f. */
    motionStartTime(): number;
    setMotionStartTime$(value: number): void;
    /** @brief Motion end time of this geometry. If not set defaults to 1.0f. */
    motionEndTime(): number;
    setMotionEndTime$(value: number): void;
    /** @brief Motion keyframe count. Is 1 by default which means no motion. */
    motionKeyframeCount(): number;
    setMotionKeyframeCount$(value: number): void;
}
