import { PathNode } from './path-node';
export declare class PathBuilder {
    readonly path: PathNode[];
    get last(): PathNode | undefined;
    get lastX(): number;
    get lastY(): number;
    constructor(path?: PathNode[]);
    push(next: PathNode): this;
    /**
     * Adds `MoveTo` command to the path.
     * @param x absolute x coordinate to move to.
     * @param y absolute y coordinate to move to.
     */
    M(x: number, y: number): this;
    /**
     * Adds `LineTo` command to the path.
     * @param x absolute x coordinate to draw line to.
     * @param y absolute y coordinate to draw line to.
     */
    L(x: number, y: number): this;
    H(x: number): this;
    V(y: number): this;
    C(x1: number, y1: number, x2: number, y2: number, x: number, y: number): this;
    S(x2: number, y2: number, x: number, y: number): this;
    Q(x1: number, y1: number, x: number, y: number): this;
    T(x: number, y: number): this;
    A(rx: number, ry: number, angle: number, largeArc: number, sweep: number, x: number, y: number): this;
    Z(): this;
    /**
     * Adds `MoveTo` command to the path.
     * @param dx relative x coordinate to move to.
     * @param dy relative y coordinate to move to.
     */
    m(dx: number, dy: number): this;
    /**
     * Adds `LineTo` command to the path.
     * @param dx relative x coordinate to draw line to.
     * @param dy relative y coordinate to draw line to.
     */
    l(dx: number, dy: number): this;
    h(dx: number): this;
    v(dy: number): this;
    c(dx1: number, dy1: number, dx2: number, dy2: number, dx: number, dy: number): this;
    s(dx2: number, dy2: number, dx: number, dy: number): this;
    q(dx1: number, dy1: number, dx: number, dy: number): this;
    t(dx: number, dy: number): this;
    a(rx: number, ry: number, angle: number, largeArc: number, sweep: number, dx: number, dy: number): this;
    z(): this;
    private _relative;
}
