type TCanvasLineJoin = 'bevel' | 'round' | 'miter';
type TCanvasLineCap = 'butt' | 'round' | 'square';
type TCanvasTextBaseLine = 'top' | 'hanging' | 'middle' | 'alphabetic' | 'ideographic' | 'bottom';
type TCanvasTextAlign = 'left' | 'right' | 'center' | 'start' | 'end';
type TCanvasPatternRepeat = 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
type TCanvasGradient = any;
type TCanvasPattern = any;
type TCanvasImageSource = IMiniProgramCanvasContext_v1 | CanvasImageElement;
interface IMiniProgramCanvasContext_v1 {
    set fillStyle(value: string | TCanvasGradient | null | TCanvasPattern);
    set font(value: string);
    get font(): string;
    set fontSize(value: any);
    set strokeStyle(value: string | TCanvasGradient | null | TCanvasPattern);
    set globalAlpha(value: number);
    set lineWidth(value: number);
    set lineCap(value: TCanvasLineCap);
    set lineJoin(value: TCanvasLineJoin);
    set miterLimit(value: number);
    set textBaseline(value: TCanvasTextBaseLine);
    set lineDashOffset(value: number);
    set textAlign(value: TCanvasTextAlign);
    set globalCompositeOperation(value: string);
    setFillStyle(color: string | TCanvasGradient | null | TCanvasPattern): void;
    fillRect(x: number, y: number, width: number, height: number): void;
    strokeRect(x: number, y: number, width: number, height: number): void;
    beginPath(): void;
    arc(x: number, y: number, radius: number, startDeg: number, endDeg: number, anticlockwise?: boolean): void;
    fill(): void;
    clip(): void;
    rect(x: number, y: number, width: number, height: number): void;
    stroke(): void;
    scale(x: number, y: number): void;
    rotate(angle: number): void;
    translate(x: number, y: number): void;
    save(): void;
    restore(): void;
    clearRect(x: number, y: number, width: number, height: number): void;
    fillText(text: string, x: number, y: number, maxWidth?: number): void;
    moveTo(x: number, y: number): void;
    lineTo(x: number, y: number): void;
    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
    transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    closePath(): void;
    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
    setLineDash(gaps: number[]): void;
    strokeText(text: string, x: number, y: number, maxWidth?: number): void;
    setStrokeStyle(color: string | TCanvasGradient | null | TCanvasPattern): void;
    setGlobalAlpha(alpha: number): void;
    setLineWidth(width: number): void;
    setLineCap(lineCap: TCanvasLineCap): void;
    setLineJoin(lineJoin: TCanvasLineJoin): void;
    setMiterLimit(limit: number): void;
    setTextBaseline(baseline: TCanvasTextBaseLine): void;
    setLineDashOffset(offset: number): void;
    setTextAlign(align: TCanvasTextAlign): void;
    setGlobalCompositeOperation(op: string): void;
    setShadow(offsetX?: number, offsetY?: number, blur?: number, color?: string): void;
    setFontSize(size: number): void;
    setFont(font: string): void;
    createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): TCanvasGradient;
    createCircularGradient(x: number, y: number, r: number): TCanvasGradient;
    createLinearGradient(x0: number, y0: number, x1: number, y1: number): TCanvasGradient;
    drawImage(imageOrContext: TCanvasImageSource, sx: number, sy: number, sWidth?: number, sHeight?: number, dx?: number, dy?: number, dWidth?: number, dHeight?: number): void;
    draw(reserve?: boolean): void;
    createPattern(image: TCanvasImageSource, repeat: TCanvasPatternRepeat): TCanvasPattern;
}
export declare function createCanvasAdapter(canvasContext: any): {
    element: CanvasElement;
    context: SimulatedCanvasContext;
};
declare class CanvasImageElement {
    url: string;
    private _context;
    private _onload?;
    private _onerror?;
    private _invoked;
    private _rawImgObj?;
    static toImageSource(imageOrContext: any): TCanvasImageSource | null;
    constructor(url: string, _context: IMiniProgramCanvasContext_v1);
    private _complete;
    set onload(fn: () => void);
    set onerror(fn: () => void);
}
declare class CanvasElement {
    private canvasContext;
    private offscreenCanvas;
    constructor(canvasContext: IMiniProgramCanvasContext_v1, offscreenCanvas?: any);
    createImage(url: string): CanvasImageElement;
    requestAnimationFrame(fn: any): any;
    cancelAnimationFrame(tid: any): any;
}
declare class SimulatedCanvasContext {
    private ctx;
    canvas: CanvasElement;
    constructor(ctx: IMiniProgramCanvasContext_v1);
    private _fillStyle;
    set fillStyle(value: string | TCanvasGradient | null | TCanvasPattern);
    get fillStyle(): string | TCanvasGradient | null | TCanvasPattern;
    set font(value: string);
    get font(): string;
    set fontSize(value: any);
    private _globalAlpha;
    set globalAlpha(value: number);
    get globalAlpha(): number;
    private _globalCompositeOperation;
    set globalCompositeOperation(value: string);
    get globalCompositeOperation(): string;
    private _lineCap;
    set lineCap(value: TCanvasLineCap);
    get lineCap(): TCanvasLineCap;
    private _lineDashOffset;
    set lineDashOffset(value: number);
    get lineDashOffset(): number;
    private _lineJoin;
    set lineJoin(value: TCanvasLineJoin);
    get lineJoin(): TCanvasLineJoin;
    private _lineWidth;
    set lineWidth(value: number);
    get lineWidth(): number;
    private _miterLimit;
    set miterLimit(value: number);
    get miterLimit(): number;
    private _strokeStyle;
    set strokeStyle(value: string | TCanvasGradient | null | TCanvasPattern);
    get strokeStyle(): string | TCanvasGradient | null | TCanvasPattern;
    private _textAlign;
    set textAlign(value: TCanvasTextAlign);
    get textAlign(): TCanvasTextAlign;
    private _textBaseline;
    set textBaseline(value: TCanvasTextBaseLine);
    get textBaseline(): TCanvasTextBaseLine;
    arc(x: number, y: number, radius: number, startDeg: number, endDeg: number, anticlockwise?: boolean): void;
    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
    beginPath(): void;
    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
    clearRect(x: number, y: number, width: number, height: number): void;
    clip(): void;
    closePath(): void;
    createLinearGradient(x0: number, y0: number, x1: number, y1: number): TCanvasGradient;
    createPattern(image: TCanvasImageSource, repeat: TCanvasPatternRepeat): TCanvasPattern;
    createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): TCanvasGradient;
    drawImage(imageOrContext: TCanvasImageSource, sx: number, sy: number, sWidth: number, sHeight: number, dx: number, dy: number, dWidth: number, dHeight: number): void;
    ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
    fill(): void;
    fillRect(x: number, y: number, width: number, height: number): void;
    fillText(text: string, x: number, y: number, maxWidth?: number): void;
    lineTo(x: number, y: number): void;
    moveTo(x: number, y: number): void;
    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
    rect(x: number, y: number, width: number, height: number): void;
    resetTransform(): void;
    restore(): void;
    rotate(angle: number): void;
    save(): void;
    scale(x: number, y: number): void;
    setLineDash(gaps: number[]): void;
    setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    stroke(): void;
    strokeRect(x: number, y: number, width: number, height: number): void;
    strokeText(text: string, x: number, y: number, maxWidth?: number): void;
    transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
    translate(x: number, y: number): void;
}
export {};
