import { AttribValue, NumericAttribValue, PolyDictionary } from '../../types/GlobalTypes';
import { Vector2 } from 'three/src/math/Vector2';
import { Vector3 } from 'three/src/math/Vector3';
import { Vector4 } from 'three/src/math/Vector4';
import { Object3D } from 'three/src/core/Object3D';
import { BufferGeometry } from 'three/src/core/BufferGeometry';
import { CoreGeometry } from './Geometry';
import { GroupString } from './Group';
import { AttribType, AttribSize } from './Constant';
import { CorePoint } from './Point';
import { CoreEntity } from './Entity';
export declare class CoreObject extends CoreEntity {
    private _object;
    constructor(_object: Object3D, index: number);
    object(): Object3D;
    geometry(): BufferGeometry | null;
    coreGeometry(): CoreGeometry | null;
    points(): CorePoint[];
    pointsFromGroup(group: GroupString): CorePoint[];
    static isInGroup(groupString: string, object: Object3D): boolean;
    computeVertexNormals(): void;
    static addAttribute(object: Object3D, attrib_name: string, value: AttribValue): void;
    addAttribute(name: string, value: AttribValue): void;
    addNumericAttrib(name: string, value: NumericAttribValue): void;
    setAttribValue(name: string, value: AttribValue): void;
    addNumericVertexAttrib(name: string, size: number, default_value: NumericAttribValue): void;
    attributeNames(): string[];
    attribNames(): string[];
    hasAttrib(name: string): boolean;
    renameAttrib(old_name: string, new_name: string): void;
    deleteAttribute(name: string): void;
    static attribValue(object: Object3D, name: string, index?: number, target?: Vector2 | Vector3 | Vector4): AttribValue | undefined;
    static stringAttribValue(object: Object3D, name: string, index?: number): string | undefined;
    attribValue(name: string, target?: Vector2 | Vector3 | Vector4): AttribValue | undefined;
    stringAttribValue(name: string): string | undefined;
    name(): string;
    humanType(): string;
    attribTypes(): PolyDictionary<AttribType>;
    attribType(name: string): AttribType;
    attribSizes(): PolyDictionary<AttribSize>;
    attribSize(name: string): AttribSize | null;
    clone(): Object3D;
    static clone(src_object: Object3D): Object3D;
    static parallelTraverse(a: Object3D, b: Object3D, callback: (a: Object3D, b: Object3D) => void): void;
}
