import type { GPUMeshData } from './MeshGeometry';
import { StreamedMeshGeometry } from './StreamedMeshGeometry';
export declare class GeometryFactory {
    private static maxArraySize;
    private vbuffers;
    private fbuffers;
    private curVertexPos;
    private curIndexPos;
    private cylinderVBuffer;
    private cylinderFBuffer;
    protected gl: WebGL2RenderingContext;
    constructor(gl: WebGL2RenderingContext);
    createDataBuffer(vertexArray: Float32Array, indexArray: Uint16Array): GPUMeshData;
    bindBuffer(meshData: GPUMeshData): void;
    createCylinderBuffer(vertexArray: Float32Array, indexArray: Uint16Array): GPUMeshData;
    protected newVertexBuffer(_size?: number): void;
    protected newIndexBuffer(_size?: number): void;
    createCylinderGeometry(_vertices: Float32Array, _faces: Uint16Array, _color: number, _opacity: number, _drawType: number): StreamedMeshGeometry;
    createMeshGeometry(_vertices: Float32Array, _faces: Uint16Array, _color: number, _opacity: number, _drawType: number): StreamedMeshGeometry;
}
