import { Box3, Euler, Matrix4, Quaternion, Vector3 } from 'three';
import { NodeRenderView } from '../tree/NodeRenderView.js';
import { AccelerationStructure } from '../objects/AccelerationStructure.js';
import { MeshBVH } from 'three-mesh-bvh';
export type VectorLike = {
    x: number;
    y: number;
    z?: number;
    w?: number;
} | undefined | null;
export type Vector3Like = VectorLike & {
    z: number;
};
export type Vector4Like = Vector3Like & {
    w: number;
};
export declare class BatchObject {
    protected _renderView: NodeRenderView;
    protected _accelerationStructure: AccelerationStructure;
    protected _batchIndex: number;
    protected _localOrigin: Vector3;
    transform: Matrix4;
    transformInv: Matrix4;
    tasVertIndexStart: number;
    tasVertIndexEnd: number;
    quaternion: Quaternion;
    eulerValue: Euler;
    pivot_High: Vector3;
    pivot_Low: Vector3;
    translation: Vector3;
    scaleValue: Vector3;
    pivotValue: Vector3;
    protected static matBuff0: Matrix4;
    protected static matBuff1: Matrix4;
    protected static matBuff2: Matrix4;
    protected static eulerBuff: Euler;
    protected static translationBuff: Vector3;
    protected static scaleBuff: Vector3;
    protected static pivotBuff: Vector3;
    transformDirty: boolean;
    get renderView(): NodeRenderView;
    get accelerationStructure(): AccelerationStructure;
    get batchIndex(): number;
    get aabb(): Box3;
    get localOrigin(): Vector3;
    set pivot(value: Vector3 | null);
    set position(value: Vector3);
    set euler(euler: Euler);
    set scale(scale: Vector3);
    constructor(renderView: NodeRenderView, batchIndex: number);
    buildAccelerationStructure(position: Float32Array | Float64Array, indices: Uint16Array | Uint32Array): void;
    buildAccelerationStructure(bvh: MeshBVH): void;
    transformTRS(translation: Vector3Like, euler?: Vector3Like, scale?: Vector3Like, pivot?: Vector3Like): void;
}
