///
import { mat4 } from 'gl-matrix';
import { Component, Entity } from '../..';
import { NonFunctionProperties } from '../../ComponentManager';
import { AABB } from '../../shape/AABB';
import { IBuffer } from '../renderer/IBuffer';
import { IElements } from '../renderer/IElements';
import { BufferData } from '../renderer/IRendererService';
export declare class GeometryComponent extends Component {
dirty: boolean;
attributes: Array<{
dirty: boolean;
name: string;
data?: BufferData;
buffer?: IBuffer;
bufferGetter?: () => IBuffer;
} & GPUVertexBufferLayoutDescriptor>;
indices: Uint32Array | null;
indicesBuffer: IElements | null;
vertexCount: number;
maxInstancedCount: number;
aabb: AABB;
entity: Entity;
constructor(data: Partial>);
/**
* @see https://threejs.org/docs/#api/en/core/BufferAttribute
*/
setAttribute(name: string, data: BufferData, descriptor: GPUVertexBufferLayoutDescriptor, bufferGetter?: () => IBuffer): this;
setIndex(data: number[] | Uint8Array | Uint16Array | Uint32Array): this;
/**
* when merge all the geometries into one, we need to transform every vertex's position
* and every face's normal
*/
applyMatrix(matrix: mat4): void;
}