import { BufferGeometry, Box3, Sphere, Vector3, Object3D, Matrix4 } from 'three';
import { ObjectData } from '../../Constant';
import { CoreObjectType, MergeCompactOptions, ObjectContent } from '../../ObjectContent';
import { BaseCoreObject } from '../../entities/object/BaseCoreObject';
import { TransformTargetType } from '../../../Transform';
import { ObjectTransformMode, ObjectTransformSpace } from '../../../TransformSpace';
import { TraversedRelatedEntityData } from '../../entities/utils/TraversedRelatedEntities';
import { CoreEntityWithObject } from '../../CoreEntity';
export declare class ThreejsCoreObject extends BaseCoreObject<CoreObjectType.THREEJS> {
    protected _object: Object3D;
    constructor(_object: Object3D, index: number);
    humanType(): string;
    object(): Object3D<import("three").Object3DEventMap>;
    geometry(): BufferGeometry | null;
    static objectData(object: Object3D): ObjectData;
    static position(object: Object3D, target: Vector3): void;
    static boundingBox(object: Object3D, target: Box3): void;
    static geometryBoundingBox(object: Object3D, target: Box3): void;
    static boundingSphere(object: Object3D, target: Sphere): void;
    static geometryBoundingSphere(object: Object3D, target: Sphere): void;
    static clone(srcObject: Object3D): Object3D<import("three").Object3DEventMap>;
    static parallelTraverse(a: Object3D, b: Object3D, callback: (a: Object3D, b: Object3D) => void): void;
    static applyMatrix(object: Object3D, matrix: Matrix4, transformTargetType: TransformTargetType, transformSpace: ObjectTransformSpace, transformMode: ObjectTransformMode): void;
    static mergeCompact(options: MergeCompactOptions): void;
    static relatedPrimitiveIds(object: ObjectContent<CoreObjectType>, index: number, target: number[], traversedRelatedEntityData?: TraversedRelatedEntityData): void;
    static relatedPrimitiveClass<T extends CoreObjectType>(object: ObjectContent<T>): typeof CoreEntityWithObject<T>;
}
