import { Box3, Euler, Matrix4, Quaternion, Vector3 } from 'three';
import { NodeRenderView } from '../tree/NodeRenderView';
import { AccelerationStructure } from '../objects/AccelerationStructure';
import { MeshBVH } from 'three-mesh-bvh';
export type VectorLike = {
    x: number;
    y: number;
    z?: number;
    w?: number;
} | undefined | null;
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;
    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 speckleId(): string;
    get aabb(): Box3;
    get localOrigin(): Vector3;
    set position(value: Vector3);
    set euler(euler: Euler);
    set scale(scale: Vector3);
    constructor(renderView: NodeRenderView, batchIndex: number);
    buildAccelerationStructure(bvh?: MeshBVH): void;
    transformTRS(translation: VectorLike, euler: VectorLike, scale: VectorLike, pivot: VectorLike): void;
}
