import { Matrix4, Box3, Sphere, Vector3 } from 'three';
import { CsgObject } from './CsgObject';
import { CsgGeometryType } from './CsgCommon';
import { BaseCoreObject } from '../../entities/object/BaseCoreObject';
import { CoreObjectType, MergeCompactOptions, ObjectContent } from '../../ObjectContent';
import { TransformTargetType } from '../../../Transform';
import { ObjectTransformMode, ObjectTransformSpace } from '../../../TransformSpace';
import { ObjectData } from '../../Constant';
export declare class CsgCoreObject<T extends CsgGeometryType> extends BaseCoreObject<CoreObjectType.CSG> {
    protected _object: CsgObject<T>;
    constructor(_object: CsgObject<T>, index: number);
    static position(object: CsgObject<CsgGeometryType>, target: Vector3): void;
    boundingBox(target: Box3): void;
    boundingSphere(target: Sphere): void;
    static objectData<T extends CoreObjectType>(object: ObjectContent<T>): ObjectData;
    static applyMatrix<T extends CsgGeometryType>(object: CsgObject<T>, matrix: Matrix4, transformTargetType: TransformTargetType, transformSpace: ObjectTransformSpace, transformMode: ObjectTransformMode): void;
    static mergeCompact<T extends CsgGeometryType>(options: MergeCompactOptions): void;
}
