import Flatbush from 'flatbush';
import { Vector3 } from 'three';
import { RoomWallBase, WallFaceType } from "../../Entity/Wall/RoomWallBase";
import { GetCurveParam } from "../GetCurveParam";
type Range = [number, number];
export interface WallRange extends Range {
    left: WallFaceType;
    right: WallFaceType;
}
export declare class RoomWallPlaceIHoleHelper {
    _Walls: RoomWallBase[];
    protected _ParamGets: GetCurveParam[];
    protected _ParamRanges: ([number, number][])[];
    protected _Fb: Flatbush;
    constructor(_Walls: RoomWallBase[]);
    FindBestPlace(p: Vector3): {
        wall: RoomWallBase;
        range: WallRange;
        cpParam: number;
        getParam: GetCurveParam;
    };
    private GenFb;
    ParseWallCanPlaceHoleRange(): void;
}
export declare function FindBestRange(param: number, ranges: [number, number][], fuzz?: number): [number, number];
export declare function ParseWallRange(wall: RoomWallBase, getParam?: import("../GetCurveParam").GetLineParam | import("../GetCurveParam").GetArcParam): WallRange[];
export {};
//# sourceMappingURL=RoomWallPlaceIHoleHelper.d.ts.map