import { IPoint } from "../../interfaces/IPoint.js";
export {};
export declare type PathDataM = {
    type: 'M' | 'm';
    values: [x: number, y: number];
};
export declare type PathDataL = {
    type: 'L' | 'l';
    values: [x: number, y: number];
};
export declare type PathDataT = {
    type: 'T' | 't';
    values: [x: number, y: number];
};
export declare type PathDataH = {
    type: 'H' | 'h';
    values: [x: number];
};
export declare type PathDataV = {
    type: 'V' | 'v';
    values: [y: number];
};
export declare type PathDataZ = {
    type: 'Z' | 'z';
    values?: [];
};
export declare type PathDataC = {
    type: 'C' | 'c';
    values: [x1: number, y1: number, x2: number, y2: number, x: number, y: number];
};
export declare type PathDataS = {
    type: 'S' | 's';
    values: [x2: number, y2: number, x: number, y: number];
};
export declare type PathDataQ = {
    type: 'Q' | 'q';
    values: [x1: number, y1: number, x: number, y: number];
};
export declare type PathDataA = {
    type: 'A' | 'a';
    values: [rx: number, ry: number, ang: number, flag1: 0 | 1, flag2: 0 | 1, x: number, y: number];
};
export declare type PathData = {
    type: string;
} & (PathDataM | PathDataL | PathDataH | PathDataV | PathDataZ | PathDataC | PathDataS | PathDataQ | PathDataT | PathDataA)[];
export declare function straightenLine(p1: IPoint, p2: IPoint, stepDeg?: number): IPoint;
export declare function calculateNormLegth(p1: IPoint, p2: IPoint): number;
export declare function calculateAlpha(p1: IPoint, p2: IPoint): number;
export declare function moveSVGPath(path: SVGPathElement, xFactor: number, yFactor: number): string;
export declare function createPathD(path: PathData[]): string;
declare global {
    interface SVGGraphicsElement {
        getPathData(options?: {
            normalize?: boolean;
        }): PathData[];
        isPointInStroke(point: {
            x: number;
            y: number;
        }): any;
        isPointInFill(point: {
            x: number;
            y: number;
        }): any;
    }
    interface SVGPathElement {
        getPathData(options?: {
            normalize?: boolean;
        }): PathData[];
        setPathData(pathData: PathData[]): any;
    }
    interface SVGRectElement {
        getPathData(options?: {
            normalize?: boolean;
        }): PathData[];
    }
    interface SVGCircleElement {
        getPathData(options?: {
            normalize?: boolean;
        }): PathData[];
    }
    interface SVGEllipseElement {
        getPathData(options?: {
            normalize?: boolean;
        }): PathData[];
    }
    interface SVGLineElement {
        getPathData(options?: {
            normalize?: boolean;
        }): PathData[];
    }
    interface SVGPolylineElement {
        getPathData(options?: {
            normalize?: boolean;
        }): PathData[];
    }
    interface SVGPolygonElement {
        getPathData(options?: {
            normalize?: boolean;
        }): PathData[];
    }
}
