import type { TgdDataset } from "../../dataset";
import { type TgdMaterial } from "../../material";
import { TgdTransfo } from "../../math";
import { TgdPainter } from "../painter";
import { TgdTexture2D } from "../../texture";
import { TgdContext } from "../../context";
type DatasetOption = TgdDataset | (() => TgdDataset);
export type TgdPainterSegmentsMorphingOptions = {
    /**
     * Number of faces around the cylinder.
     * Min is 3.
     * Default to **3**.
     */
    roundness?: number;
    /**
     * With orthographic camera, this is a value in pixels.
     */
    minRadius?: number;
    /**
     * Multiply all the radii by this value.
     *
     * Default to `1`.
     */
    radiusMultiplier?: number;
    /**
     * Material to apply to the resulting mesh.
     */
    material?: TgdMaterial;
    /**
     * If a `TgdPainterSegments` is given, then the
     * data will be shared between the painters.
     */
    datasetsPairs: [DatasetOption, DatasetOption][];
};
/**
 * @example
 * ```
 * const factory = new TgdPainterSegmentsData()
 * factory.add(
 *   [0, 0, 0, .2],
 *   [1, 0, 0, .1],
 * )
 * factory.add(
 *   [0, 0, 0, .2],
 *   [0, 1, 0, .1],
 * )
 * factory.add(
 *   [0, 0, 0, .2],
 *   [0, 0, 1, .1],
 * )
 * const segments = new TgdPainterSegments(
 *   segment, factory
 * )
 * ```
 */
export declare class TgdPainterSegmentsMorphing extends TgdPainter {
    protected readonly context: TgdContext;
    readonly transfo: TgdTransfo;
    colorTexture: TgdTexture2D;
    minRadius: number;
    radiusMultiplier: number;
    radiusConstant: number;
    radiusSwitch: number;
    instanceCount: number;
    /**
     * Mix between two datasets of a pair.
     * 0.0 for the first one, 1.0 for the second one.
     */
    mix: number;
    private readonly vaos;
    private readonly prg;
    private readonly vertexCount;
    private readonly material;
    constructor(context: TgdContext, options: TgdPainterSegmentsMorphingOptions);
    delete(): void;
    paint(time: number, delta: number): void;
    private get vao();
}
export {};
//# sourceMappingURL=segments-morphing.d.ts.map