import { Material, Box3, BufferAttribute, Points, BufferGeometry } from 'three';
import { NodeRenderView } from '../tree/NodeRenderView.js';
import { type BatchUpdateRange, type DrawGroup, GeometryType } from './Batch.js';
import { PrimitiveBatch } from './PrimitiveBatch.js';
import { DrawRanges } from './DrawRanges.js';
export declare class PointBatch extends PrimitiveBatch {
    protected primitive: Points;
    protected drawRanges: DrawRanges;
    get geometryType(): GeometryType;
    get bounds(): Box3;
    get minDrawCalls(): number;
    get triCount(): number;
    get pointCount(): number;
    get lineCount(): number;
    constructor(id: string, subtreeId: string, renderViews: NodeRenderView[]);
    setDrawRanges(ranges: BatchUpdateRange[]): void;
    resetDrawRanges(): void;
    protected getCurrentIndexBuffer(): BufferAttribute;
    protected getNextIndexBuffer(): BufferAttribute;
    protected shuffleMaterialOrder(a: DrawGroup, b: DrawGroup): number;
    protected updateGradientIndexBufferData(start: number, end: number, value: number): {
        minIndex: number;
        maxIndex: number;
    };
    buildBatch(): Promise<void>;
    protected makePointGeometry(index: Int32Array, position: Float64Array, color: Float32Array): BufferGeometry;
    getRenderView(index: number): NodeRenderView | null;
    getMaterialAtIndex(index: number): Material | null;
}
