import { TgdTexture2D } from "../../texture";
import { TgdPainter } from "../painter";
import { TgdContext } from "../../context";
export interface TgdPainterPointsCloudOptions {
    /**
     * Flatten array of points:
     * `[ x1, y1, z1, radius1, x2, y2, z2, radius2, ... ]`
     */
    dataPoint: Float32Array;
    /**
     * Flatten array of UVs:
     * `[ u1, v1, u2, v2, ... ]`
     */
    dataUV?: Float32Array;
    /**
     * Multiply the radius of each point by this value.
     *
     * Default to 1.
     */
    radiusMultiplier?: number;
    /**
     * Depending on the radius and the distance to the camera,
     * the point can be invisible.
     * This value is the minimum size of the point in pixels.
     *
     * Default to 0.
     */
    minSizeInPixels?: number;
    texture?: TgdTexture2D;
}
export declare class TgdPainterPointsCloud extends TgdPainter {
    readonly context: TgdContext;
    readonly count: number;
    texture: TgdTexture2D;
    radiusMultiplier: number;
    minSizeInPixels: number;
    private readonly dataPoint;
    private readonly dataUV;
    private readonly textureMustBeDeleted;
    private readonly dataset;
    private readonly program;
    private readonly vao;
    constructor(context: TgdContext, options: TgdPainterPointsCloudOptions);
    delete(): void;
    paint(): void;
    private createDataset;
    private createProgram;
}
//# sourceMappingURL=points-cloud.d.ts.map