export declare class Point { x: number; y: number; constructor(x: number, y: number); toVector(): Vector; scale(r: number): Point; add(p: Point): Point; sub(p: Point): Point; eql(p: Point): boolean; clone(): Point; } export declare const COMMAND_TYPE: { readonly MOVE: "M"; readonly MOVE_RELATIVE: "m"; readonly LINE: "L"; readonly LINE_RELATIVE: "l"; readonly CURVE: "C"; readonly CURVE_RELATIVE: "c"; readonly CLOSE: "Z"; readonly HORIZONTAL: "H"; readonly HORIZONTAL_RELATIVE: "h"; readonly VERTICAL: "V"; readonly VERTICAL_RELATIVE: "v"; readonly ARC_CURVE: "A"; readonly ARC_CURVE_RELATIVE: "a"; readonly QUADRATIC_CURVE: "Q"; readonly QUADRATIC_CURVE_RELATIVE: "q"; }; declare type COMMAND = typeof COMMAND_TYPE[keyof typeof COMMAND_TYPE]; export declare class Command { type: COMMAND; value: number[]; constructor(type: COMMAND, value?: number[]); set cr(po: Point | undefined); get cr(): Point | undefined; set cl(po: Point | undefined); get cl(): Point | undefined; set point(po: Point | undefined); get point(): Point | undefined; toString(): string; scale(r: number): Command; clone(): Command; } export declare class Vector { angle: number; value: number; constructor(v: number, a: number); toPoint(): Point; scale(r: number): Vector; } export interface PathOption { strokeWidth?: number; attrs?: Attrs; stroke?: string; fill?: string; } interface Attrs { [key: string]: string; } export interface PathObject { attrs: Attrs; d: string; } export declare class Path { strokeWidth: number; attrs: { [key: string]: string; }; stroke: string; fill: string; commands: Command[]; constructor({ strokeWidth, fill, stroke, attrs }?: PathOption); scale(r: number): this; addCommand(param: Command): this; getCommandString(): string; parseCommandString(d: string): void; parsePathElement(pEl: SVGPathElement): this; toJson(): PathObject; toElement(): SVGElement; clone(): Path; } export interface SvgOption { width: number; height: number; } export interface SvgObject { width: number; height: number; paths: PathObject[]; } export declare class Svg { paths: Path[]; width: number; height: number; constructor({ width, height }: SvgOption); scalePath(r: number): this; addPath(pa: Path): this; clonePaths(): Path[]; updatePath(pa: Path, i?: number): this; toJson(): SvgObject; copy(svg: any extends Svg ? Svg : never): this; toElement(): SVGSVGElement; toBase64(): string; parseSVGString(svgStr: string): this; parseSVGElement(svgEl: SVGSVGElement): this; } export {};