export declare class Point2D {
    readonly x: number;
    readonly y: number;
    constructor(x: number, y: number);
}
export declare abstract class CatmullRom<R> {
    abstract position(distance: number): R;
    percentage(percent: number): R;
}
export declare class CatmullRomSpline extends CatmullRom<number> {
    private _p0;
    private _p1;
    private _p2;
    private _p3;
    constructor(_p0: number, _p1: number, _p2: number, _p3: number);
    static noEndpoints(p1: number, p2: number): CatmullRomSpline;
    position(distance: number): number;
}
export declare class CatmullRomSpline2D extends CatmullRom<Point2D> {
    private _p0;
    private _p1;
    private _p2;
    private _p3;
    constructor(_p0: Point2D, _p1: Point2D, _p2: Point2D, _p3: Point2D);
    static noEndpoints(_p0: Point2D, _p1: Point2D): CatmullRomSpline2D;
    position(distance: number): Point2D;
}
