import { CadGeometryType, CadTypeMap } from './CadCommon';
import { BaseCoreObject } from '../../entities/object/BaseCoreObject';
import { CadObject } from './CadObject';
import { CoreObjectType, MergeCompactOptions, ObjectContent } from '../../ObjectContent';
import { Box3, Matrix4, Sphere, Vector3 } from 'three';
import { TransformTargetType } from '../../../Transform';
import { ObjectTransformMode, ObjectTransformSpace } from '../../../TransformSpace';
import { ObjectData } from '../../Constant';
export declare class CadCoreObject<T extends CadGeometryType> extends BaseCoreObject<CoreObjectType.CAD> {
    protected _object: CadObject<T>;
    constructor(_object: CadObject<T>, index: number);
    type(): T;
    static fromGeometry<T extends CadGeometryType>(geometry: CadTypeMap[T], type: T): CadCoreObject<T>;
    object(): CadObject<T>;
    static position(object: CadObject<CadGeometryType>, target: Vector3): void;
    boundingBox(target: Box3): void;
    boundingSphere(target: Sphere): void;
    static objectData<T extends CoreObjectType>(object: ObjectContent<T>): ObjectData;
    static applyMatrix<T extends CadGeometryType>(object: CadObject<T>, matrix: Matrix4, transformTargetType: TransformTargetType, transformSpace: ObjectTransformSpace, transformMode: ObjectTransformMode): void;
    static mergeCompact(options: MergeCompactOptions): void;
}
