import { Triangle, Vector3, Mesh } from 'three';
import { CoreObjectType, ObjectBuilder, ObjectContent } from '../../ObjectContent';
import { ThreejsPrimitive } from './ThreejsPrimitive';
export declare class ThreejsPrimitiveTriangle extends ThreejsPrimitive {
    constructor(object: Mesh, index: number);
    static primitiveName(): string;
    static entitiesCount<T extends CoreObjectType>(object: ObjectContent<T>): number;
    static position<T extends CoreObjectType>(object: ObjectContent<T> | undefined, primitiveIndex: number, target: Vector3): Vector3;
    static normal<T extends CoreObjectType>(object: ObjectContent<T> | undefined, primitiveIndex: number, target: Vector3): Vector3;
    position(target: Vector3): Vector3;
    normal(target: Vector3): Vector3;
    static computeVertexNormalsIfAttributeVersionChanged<T extends CoreObjectType>(object: ObjectContent<T>): null | undefined;
    builder<T extends CoreObjectType>(): ObjectBuilder<T>;
    protected static stride(): number;
    static setTriangle<T extends CoreObjectType>(object: ObjectContent<T> | undefined, primitiveIndex: number, target: Triangle): void;
}
export declare function triangleArea(triangle: ThreejsPrimitiveTriangle): number;
export declare function setTriangle<T extends CoreObjectType>(object: ObjectContent<T> | undefined, primitiveIndex: number, target: Triangle): void;
