import BoundingRect from './BoundingRect'; interface ExtendedCanvasRenderingContext2D extends CanvasRenderingContext2D { dpr?: number; } export declare function normalizeArcAngles(angles: number[], anticlockwise: boolean): void; export default class PathProxy { dpr: number; data: number[] | Float32Array; private _version; private _saveData; private _pendingPtX; private _pendingPtY; private _pendingPtDist; private _ctx; private _xi; private _yi; private _x0; private _y0; private _len; private _pathSegLen; private _pathLen; private _ux; private _uy; static CMD: { M: number; L: number; C: number; Q: number; A: number; Z: number; R: number; }; constructor(notSaveData?: boolean); increaseVersion(): void; getVersion(): number; setScale(sx: number, sy: number, segmentIgnoreThreshold?: number): void; setDPR(dpr: number): void; setContext(ctx: ExtendedCanvasRenderingContext2D): void; getContext(): ExtendedCanvasRenderingContext2D; beginPath(): this; reset(): void; moveTo(x: number, y: number): this; lineTo(x: number, y: number): this; bezierCurveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): this; quadraticCurveTo(x1: number, y1: number, x2: number, y2: number): this; arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise?: boolean): this; arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this; rect(x: number, y: number, w: number, h: number): this; closePath(): this; fill(ctx: CanvasRenderingContext2D): void; stroke(ctx: CanvasRenderingContext2D): void; len(): number; setData(data: Float32Array | number[]): void; appendPath(path: PathProxy | PathProxy[]): void; addData(cmd: number, a?: number, b?: number, c?: number, d?: number, e?: number, f?: number, g?: number, h?: number): void; private _drawPendingPt; private _expandData; toStatic(): void; getBoundingRect(): BoundingRect; private _calculateLength; rebuildPath(ctx: PathRebuilder, percent: number): void; clone(): PathProxy; private static initDefaultProps; } export interface PathRebuilder { moveTo(x: number, y: number): void; lineTo(x: number, y: number): void; bezierCurveTo(x: number, y: number, x2: number, y2: number, x3: number, y3: number): void; quadraticCurveTo(x: number, y: number, x2: number, y2: number): void; arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise: boolean): void; ellipse(cx: number, cy: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise: boolean): void; rect(x: number, y: number, width: number, height: number): void; closePath(): void; } export {};