import { Path2D } from './Canvas';
export declare enum CommandType {
    MoveTo = 0,
    LineTo = 1,
    Arc = 2,
    Bezier = 3,
    Quad = 4,
    Close = 5
}
export type PathCommand = [CommandType.MoveTo, number, number] | [CommandType.LineTo, number, number] | [CommandType.Arc, number, number, number, number, number, boolean] | [CommandType.Bezier, number, number, number, number, number, number] | [CommandType.Quad, number, number, number, number] | [CommandType.Close];
export declare function parseCommands(svgPath: string): PathCommand[];
export declare function commandToSvgPath(command: PathCommand): string;
export declare function transformPath(commands: PathCommand[], transform: DOMMatrix): PathCommand[];
export declare function getBBox(commands: PathCommand[]): {
    x: number;
    y: number;
    width: number;
    height: number;
};
declare class SvgPath2D extends Path2D {
    readonly commands: PathCommand[];
    constructor(svgPath?: string);
    moveTo(x: number, y: number): void;
    lineTo(x: number, y: number): void;
    arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
    quadraticCurveTo(qx1: number, qy1: number, qx: number, qy: number): void;
    addPath(path: SvgPath2D, matrix?: DOMMatrix): void;
    closePath(): void;
}
export declare function toCommands(path: SvgPath2D): string;
export { SvgPath2D as Path2D };
