import * as THREE from 'three';
export type PointsRepresentation = THREE.BufferGeometry | Float32Array | THREE.Vector3[] | THREE.Vector2[] | THREE.Vector3Tuple[] | THREE.Vector2Tuple[] | number[];
export type WidthCallback = (p: number) => any;
export declare class MeshLineGeometry extends THREE.BufferGeometry {
    type: string;
    isMeshLine: boolean;
    positions: number[];
    previous: number[];
    next: number[];
    side: number[];
    width: number[];
    indices_array: number[];
    uvs: number[];
    counters: number[];
    widthCallback: WidthCallback | null;
    _attributes: {
        position: THREE.BufferAttribute;
        previous: THREE.BufferAttribute;
        next: THREE.BufferAttribute;
        side: THREE.BufferAttribute;
        width: THREE.BufferAttribute;
        uv: THREE.BufferAttribute;
        index: THREE.BufferAttribute;
        counters: THREE.BufferAttribute;
    };
    _points: Float32Array | number[];
    points: Float32Array | number[];
    matrixWorld: THREE.Matrix4;
    constructor();
    setMatrixWorld(matrixWorld: THREE.Matrix4): void;
    setPoints(points: PointsRepresentation, wcb?: WidthCallback): void;
    compareV3(a: number, b: number): boolean;
    copyV3(a: number): THREE.Vector3Tuple;
    process(): void;
    /**
     * Fast method to advance the line by one position.  The oldest position is removed.
     * @param position
     */
    advance({ x, y, z }: THREE.Vector3): void;
}
