import type { _MTLAccelerationStructureDescriptor } from "./MTLAccelerationStructureDescriptor.js";
import type { _MTLBuffer } from "./MTLBuffer.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { MTLAccelerationStructureInstanceDescriptorType } from "./MTLAccelerationStructureInstanceDescriptorType.js";
import type { MTLMatrixLayout } from "./MTLMatrixLayout.js";
import type { MTLTransformType } from "./MTLTransformType.js";
export declare class _MTLInstanceAccelerationStructureDescriptor extends _MTLAccelerationStructureDescriptor {
    static alloc(): _MTLInstanceAccelerationStructureDescriptor;
    static new(): _MTLInstanceAccelerationStructureDescriptor;
    init(): _MTLInstanceAccelerationStructureDescriptor;
    static descriptor(): _MTLInstanceAccelerationStructureDescriptor;
    /**
     * @brief Buffer containing instance descriptors of the type specified by the instanceDescriptorType property
     */
    instanceDescriptorBuffer(): _MTLBuffer | null;
    setInstanceDescriptorBuffer$(value: _MTLBuffer | null): void;
    /**
     * @brief Offset into the instance descriptor buffer. Must be a multiple of 64 bytes and must be aligned to the platform's buffer offset alignment.
     */
    instanceDescriptorBufferOffset(): number;
    setInstanceDescriptorBufferOffset$(value: number): void;
    /**
     * @brief Stride, in bytes, between instance descriptors in the instance descriptor buffer. Must be at least the size of the instance descriptor type and must be a multiple of 4 bytes. Defaults to the size of the instance descriptor type.
     */
    instanceDescriptorStride(): number;
    setInstanceDescriptorStride$(value: number): void;
    /** @brief Number of instance descriptors */
    instanceCount(): number;
    setInstanceCount$(value: number): void;
    /** @brief Acceleration structures to be instanced */
    instancedAccelerationStructures(): _NSArray | null;
    setInstancedAccelerationStructures$(value: _NSArray | null): void;
    /**
     * @brief Type of instance descriptor in the instance descriptor buffer. Defaults to MTLAccelerationStructureInstanceDescriptorTypeDefault.
     */
    instanceDescriptorType(): MTLAccelerationStructureInstanceDescriptorType;
    setInstanceDescriptorType$(value: MTLAccelerationStructureInstanceDescriptorType): void;
    /** @brief Buffer containing transformation information for motion */
    motionTransformBuffer(): _MTLBuffer | null;
    setMotionTransformBuffer$(value: _MTLBuffer | null): void;
    /**
     * @brief Offset into the instance motion descriptor buffer. Must be a multiple of 64 bytes and must be aligned to the platform's buffer offset alignment.
     */
    motionTransformBufferOffset(): number;
    setMotionTransformBufferOffset$(value: number): void;
    /** @brief Number of motion transforms */
    motionTransformCount(): number;
    setMotionTransformCount$(value: number): void;
    /**
     * Matrix layout of the transformation matrices in the instance descriptors in the instance descriptor buffer and the transformation matrices in the transformation matrix buffer. Defaults to MTLMatrixLayoutColumnMajor.
     */
    instanceTransformationMatrixLayout(): MTLMatrixLayout;
    setInstanceTransformationMatrixLayout$(value: MTLMatrixLayout): void;
    /** @brief Type of motion transforms. Defaults to MTLTransformTypePackedFloat4x3. */
    motionTransformType(): MTLTransformType;
    setMotionTransformType$(value: MTLTransformType): void;
    /**
     * @brief Motion transform stride. Defaults to 0, indicating that transforms are tightly packed according to the motion transform type.
     */
    motionTransformStride(): number;
    setMotionTransformStride$(value: number): void;
}
