import { Vector3, BufferAttribute } from 'three';
import { ObjectGeometryMap, CoreObjectType, ObjectContent } from '../../ObjectContent';
import { CorePoint } from '../../entities/point/CorePoint';
import { PointAttributesDict } from '../../entities/point/Common';
import { CadObject } from './CadObject';
import { CadGeometryType } from './CadCommon';
export declare class CadPoint extends CorePoint<CoreObjectType.CAD> {
    protected _geometry?: ObjectGeometryMap[CoreObjectType.CAD];
    protected _object: CadObject<CadGeometryType>;
    constructor(object: CadObject<CadGeometryType>, index: number);
    object(): CadObject<CadGeometryType>;
    setIndex(index: number, object?: CadObject<CadGeometryType>): this;
    private _updateGeometry;
    geometry(): import("./CadCommon").CadGeometry | undefined;
    static addAttribute<T extends CoreObjectType>(object: ObjectContent<T>, attribName: string, attribute: BufferAttribute): void;
    static attributes<T extends CoreObjectType>(object: ObjectContent<T>): PointAttributesDict | undefined;
    static entitiesCount<T extends CoreObjectType>(object: ObjectContent<T>): number;
    position(target: Vector3): Vector3;
    normal(target: Vector3): Vector3;
    static userDataAttribs<T extends CoreObjectType>(object: ObjectContent<T>): {};
    static setIndexedAttribute<T extends CoreObjectType>(object: ObjectContent<T>, attribName: string, values: string[], indices: number[]): void;
    static attribValueIndex<T extends CoreObjectType>(object: ObjectContent<T>, index: number, attribName: string): number;
}
