import type { IntPoint } from "js-angusj-clipper";
import { Bez3Slice } from "../shared/slice-arc";
import type { FIntersection } from "./intersections";
export type IntKnot = IntPoint & {
    t: number;
};
export declare class SegHashStore {
    private terms;
    addStart(z: IntPoint): SegStart;
    getStart(z: IntPoint): undefined | SegStart;
    getSegment(start: IntPoint, end: IntPoint): SegEntry | undefined;
}
export declare class SegStart {
    private segments;
    addEnd(dest: IntPoint, entry: SegEntry): void;
    getEnd(dest: IntPoint): undefined | SegEntry;
}
export declare class SegEntry {
    readonly arc: Bez3Slice;
    start: number;
    end: number;
    readonly sid: number;
    readonly jid: number;
    readonly kid: number;
    constructor(arc: Bez3Slice, start: number, end: number, sid?: number, jid?: number, kid?: number);
    compare(b: SegEntry): number;
    tryAnnex(b: SegEntry): boolean;
    toArc(): Bez3Slice;
}
export declare function toPoly(shape: Bez3Slice[][], sid: number, splats: FIntersection[][], segHash: SegHashStore, resolution: number): IntPoint[][];
export declare function PolySetIsEmpty(poly: IntPoint[][]): boolean;
