import { Material, Matrix4, Box3, Sphere, Object3D } from 'three';
import { QUADObjectType, QUADTesselationParams } from './QuadCommon';
import { QuadGeometry } from './QuadGeometry';
import { ObjectContent, CoreObjectType } from '../../ObjectContent';
export declare class QuadObject implements ObjectContent<CoreObjectType.QUAD> {
    private _geometry;
    visible: boolean;
    get geometry(): QuadGeometry;
    get type(): QUADObjectType;
    userData: {};
    name: string;
    castShadow: boolean;
    receiveShadow: boolean;
    renderOrder: number;
    frustumCulled: boolean;
    matrixAutoUpdate: boolean;
    material: Material | undefined;
    children: ObjectContent<CoreObjectType.QUAD>[];
    parent: ObjectContent<CoreObjectType.QUAD> | null;
    private _type;
    constructor(_geometry: QuadGeometry);
    quadGeometry(): QuadGeometry;
    dispose(): void;
    applyMatrix4(matrix: Matrix4): void;
    add(...object: ObjectContent<CoreObjectType>[]): void;
    remove(...object: ObjectContent<CoreObjectType>[]): void;
    dispatchEvent(event: {
        type: string;
    }): void;
    traverse(callback: (object: QuadObject) => any): void;
    clone(): QuadObject;
    toObject3D(tesselationParams: QUADTesselationParams): Object3D | Object3D[] | undefined;
    boundingBox(target: Box3): void;
    boundingSphere(target: Sphere): void;
}
