import { Vector3 } from "three";
import { Matrix2 } from "../../../Geometry/Matrix2";
import { Arc } from "../../Entity/Arc";
import { Line } from "../../Entity/Line";
import { RoomWallBase } from "../Entity/Wall/RoomWallBase";
export declare const LEFT_ROTATE_MTX2: Matrix2;
export interface GetCurveParam {
    GetParamAtPoint(p: Vector3): number;
    GetParamAtPoint2(p: Vector3): [number, boolean];
    GetPointAtParam(param: number): Vector3;
}
export declare function CreateGetCurveParam(curve: Line | Arc | RoomWallBase): GetLineParam | GetArcParam;
export declare class GetLineParam {
    Direction: Vector3;
    Length: number;
    LeftDir: Vector3;
    private _StartPoint;
    constructor(line: Line);
    private _RightDir;
    get RightDir(): Vector3;
    private _NegDirection;
    get NegDirection(): Vector3;
    GetParamAtPoint(p: Vector3): number;
    GetParamAtPoint2(p: Vector3): [number, boolean];
    GetPointAtParam(param: number): Vector3;
    OffsetPoint(p: Vector3, dis: number): Vector3;
}
export declare class GetArcParam implements GetCurveParam {
    private _Arc;
    constructor(_Arc: Arc);
    GetParamAtPoint2(p: Vector3): [number, boolean];
    GetPointAtParam(param: number): Vector3;
    GetParamAtPoint(p: Vector3): number;
}
//# sourceMappingURL=GetCurveParam.d.ts.map