import '../../../assert/js/assert.js';
import '../../../globals.js';
/**
 * Similar to an DOM Canvas, but stores a vector representation of the relevant drawing commands.
 *
 * TODO TODO: This should be done instead in the rational-half-edge space, so we get better exactness on the repeated
 * TODO: CAG. What is causing the issues?
 *
 * TODO: We really would want to "cache" all of the commands at once, build up a "pending" RenderProgram, and then
 * TODO: handle all the paths at once.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Bounds2 from '../../../dot/js/Bounds2.js';
import Matrix3 from '../../../dot/js/Matrix3.js';
import Vector2 from '../../../dot/js/Vector2.js';
import Vector4 from '../../../dot/js/Vector4.js';
import { CombinedRasterOptions, PolygonFilterType, RenderableFace, RenderExtend, RenderLinearGradientAccuracy, RenderPath, RenderRadialGradientAccuracy } from '../imports.js';
export default class VectorCanvas {
    width: number;
    height: number;
    readonly colorSpace: 'srgb' | 'display-p3';
    readonly polygonFiltering: PolygonFilterType;
    renderableFaces: RenderableFace[];
    bounds: Bounds2;
    gridBounds: Bounds2;
    constructor(width: number, height: number, colorSpace?: 'srgb' | 'display-p3', polygonFiltering?: PolygonFilterType);
    fillColor(renderPath: RenderPath, color: Vector4): void;
    fillLinearGradient(renderPath: RenderPath, start: Vector2, end: Vector2, stops: {
        ratio: number;
        color: Vector4;
    }[], extend: RenderExtend, accuracy?: RenderLinearGradientAccuracy): void;
    fillRadialGradient(renderPath: RenderPath, transform: Matrix3, start: Vector2, startRadius: number, end: Vector2, endRadius: number, stops: {
        ratio: number;
        color: Vector4;
    }[], extend: RenderExtend, accuracy?: RenderRadialGradientAccuracy): void;
    copy(): VectorCanvas;
    private colorToRenderProgram;
    private fillRenderProgram;
    private combineFaces;
    updateWidthHeight(width: number, height: number): void;
    getImageData(options?: CombinedRasterOptions): ImageData;
    getCanvas(options?: CombinedRasterOptions): HTMLCanvasElement;
}
//# sourceMappingURL=VectorCanvas.d.ts.map