You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
2.2 KiB

declare module "svgpath" {
type MoveToAbs = ["M", number, number];
type LineToAbs = ["L", number, number];
type HorizontalLineToAbs = ["H", number];
type VerticalLineToAbs = ["V", number];
type CurveToAbs = ["C", number, number, number, number, number, number];
type SmoothCurveToAbs = ["S", number, number, number, number];
type QuadraticBézierCurveToAbs = ["Q", number, number, number, number];
type SmoothQuadraticBézierCurveToAbs = ["T", number, number];
type EllipticalArcAbs = ["A", number, number, number, number, number, number, number];
type MoveToRel = ["m", number, number];
type LineToRel = ["l", number, number];
type HorizontalLineToRel = ["h", number];
type VerticalLineToRel = ["v", number];
type CurveToRel = ["c", number, number, number, number, number, number];
type SmoothCurveToRel = ["s", number, number, number, number];
type QuadraticBézierCurveToRel = ["q", number, number, number, number];
type SmoothQuadraticBézierCurveToRel = ["t", number, number];
type EllipticalArcRel = ["a", number, number, number, number, number, number, number];
type ClosePath = ["Z" | "z"];
type Segment = MoveToAbs | MoveToRel | LineToAbs | LineToRel | HorizontalLineToAbs | HorizontalLineToRel | VerticalLineToAbs | VerticalLineToRel | CurveToAbs | CurveToRel | SmoothCurveToAbs | SmoothCurveToRel | QuadraticBézierCurveToAbs | QuadraticBézierCurveToRel | SmoothQuadraticBézierCurveToAbs | SmoothQuadraticBézierCurveToRel | EllipticalArcAbs | EllipticalArcRel | ClosePath;
interface SvgPath {
(path: string): SvgPath;
new (path: string): SvgPath;
from(path: string | SvgPath): SvgPath;
abs(): SvgPath;
rel(): SvgPath;
scale(sx: number, sy?: number): SvgPath;
translate(x: number, y?: number): SvgPath;
rotate(angle: number, rx?: number, ry?: number): SvgPath;
skewX(degrees: number): SvgPath;
skewY(degrees: number): SvgPath;
matrix(m: number[]): SvgPath;
transform(str: string): SvgPath;
unshort(): SvgPath;
unarc(): SvgPath;
toString(): string;
round(precision: number): SvgPath;
iterate(iterator: (segment: Segment, index: number, x: number, y: number) => void, keepLazyStack?: boolean): SvgPath;
}
const svgPath: SvgPath;
export = svgPath;
}