import { Matrix3D } from '@awayjs/core';
import { AttributesBuffer, AttributesView, Short2Attributes, Short3Attributes, Float3Attributes, Float4Attributes, Byte4Attributes } from '@awayjs/stage';
export declare class ElementsUtils {
    private static tempFloat32x4;
    private static LIMIT_VERTS;
    private static LIMIT_INDICES;
    private static _indexSwap;
    static generateFaceNormals(indexAttributes: Short3Attributes, positionAttributes: AttributesView, faceNormalAttributes: Float4Attributes, count: number, offset?: number): Float4Attributes;
    static generateNormals(indexAttributes: Short3Attributes, faceNormalAttributes: Float4Attributes, normalAttributes: Float3Attributes, concatenatedBuffer: AttributesBuffer): Float3Attributes;
    static generateFaceTangents(indexAttributes: Short3Attributes, positionAttributes: AttributesView, uvAttributes: AttributesView, faceTangentAttributes: Float4Attributes, count: number, offset?: number, useFaceWeights?: boolean): Float4Attributes;
    static generateTangents(indexAttributes: Short3Attributes, faceTangentAttributes: Float3Attributes, faceNormalAttributes: Float4Attributes, tangentAttributes: Float3Attributes, concatenatedBuffer: AttributesBuffer): Float3Attributes;
    static generateColors(indexAttributes: Short3Attributes, colorAttributes: Byte4Attributes, concatenatedBuffer: AttributesBuffer, count: number, offset?: number): Byte4Attributes;
    static scale(scaleA: number, scaleB: number, scaleC: number, output: AttributesView, count: number, offset?: number): void;
    static applyTransformation(transform: Matrix3D, positionAttributes: AttributesView, normalAttributes: Float3Attributes, tangentAttributes: Float3Attributes, count: number, offset?: number): void;
    static getSubIndices(indexAttributes: Short2Attributes, numVertices: number, indexMappings: Array<number>, indexOffset?: number): AttributesBuffer;
    static getSubIndices(indexAttributes: Short3Attributes, numVertices: number, indexMappings: Array<number>, indexOffset?: number): AttributesBuffer;
    static getSubVertices(vertexBuffer: AttributesBuffer, indexMappings: Array<number>): AttributesBuffer;
}
//# sourceMappingURL=ElementsUtils.d.ts.map