import { CColorGradient } from '../module/ccolorgradient.js';
import { Canvas } from '../module/canvas.js';
import { CRenderer } from '../module/crenderer.js';
import { Plugin, PluginHooks, RenderContext as Ctx } from '../plugins.js';
export declare class CanvasError extends Error {
    constructor();
}
export interface HtmlCanvasAlternative {
    frameBegin(): void;
    frameEnd(): void;
    context: CanvasRenderingContext2D;
}
export type RenderContext = Ctx & {
    htmlCanvas?: HtmlCanvasAlternative;
};
export declare class CanvasRenderer extends CRenderer implements Canvas, Plugin {
    private _htmlCanvas?;
    private _polygonInProgress;
    private _currentLineWidth;
    get hooks(): PluginHooks;
    private get _canvas();
    private get _context();
    frameBegin(): void;
    frameEnd(): void;
    setClipRect(x: number, y: number, sizex: number, sizey: number): void;
    setClipCircle(x: number, y: number, radius: number): void;
    setClipPolygon(): void;
    setBrushColor(r: number, g: number, b: number, a: number): void;
    setLineColor(r: number, g: number, b: number, a: number): void;
    setLineWidth(width: number): void;
    setFontStyle(font: string): void;
    beginDropShadow(): void;
    setDropShadowBlur(radius: number): void;
    setDropShadowColor(r: number, g: number, b: number, a: number): void;
    setDropShadowOffset(x: number, y: number): void;
    endDropShadow(): void;
    beginPolygon(): void;
    addPoint(x: number, y: number): void;
    addBezier(c0x: number, c0y: number, c1x: number, c1y: number, x: number, y: number): void;
    endPolygon(): void;
    rectangle(x: number, y: number, sizex: number, sizey: number): void;
    circle(x: number, y: number, radius: number): void;
    line(x1: number, y1: number, x2: number, y2: number): void;
    drawText(x: number, y: number, sizex: number, sizey: number, text: string): void;
    setGradient(x1: number, y1: number, x2: number, y2: number, gradient: CColorGradient): void;
    transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    save(): void;
    restore(): void;
}
