import '../../assert/js/assert.js';
import '../../globals.js';
/**
 * CanvasLinePlot renders a {Array.<Vector2|null>} dataSet on a canvas that is managed by a ChartCanvasNode.
 * Typically, it is preferable to use LinePlot, but this alternative is provided for cases where canvas must be
 * used for performance. Like LinePlot, null values are skipped, and allow you to create gaps in a plot.
 * @see LinePlot
 *
 * @author Sam Reid (PhET Interactive Simulations)
 */
import Vector2 from '../../dot/js/Vector2.js';
import { Color } from '../../scenery/js/imports.js';
import CanvasPainter, { CanvasPainterOptions } from './CanvasPainter.js';
import ChartTransform from './ChartTransform.js';
type SelfOptions = {
    stroke?: string | Color | null;
    lineWidth?: number;
    lineDash?: number[];
};
export type CanvasLinePlotOptions = SelfOptions & CanvasPainterOptions;
export default class CanvasLinePlot extends CanvasPainter {
    private chartTransform;
    dataSet: (Vector2 | null)[];
    lineWidth: number;
    lineDash: number[];
    private strokeCSS;
    constructor(chartTransform: ChartTransform, dataSet: Array<Vector2 | null>, providedOptions?: CanvasLinePlotOptions);
    /**
     * Sets the stroke.
     * @param stroke - If you call setStroke, you are responsible for calling update on the associated ChartCanvasNode(s).
     */
    setStroke(stroke: Color | string | null): void;
    set stroke(stroke: Color | string | null);
    dispose(): void;
    setDataSet(dataSet: Vector2[]): void;
    paintCanvas(context: CanvasRenderingContext2D): void;
}
export {};
//# sourceMappingURL=CanvasLinePlot.d.ts.map