import * as clipperLib from "js-angusj-clipper";
import type { Arcs } from "../../derivable";
import { Bez3Slice } from "../shared/slice-arc";
export type combineOps = {
    type: "operand";
    fillType: clipperLib.PolyFillType;
    shape: Arcs.Bez3[][];
} | {
    type: "operator";
    operator: clipperLib.ClipType;
};
export type combineOpsInternal = combineOps | {
    type: "operand_rectified";
    fillType: clipperLib.PolyFillType;
    shape_rectified: Bez3Slice[][];
    intersectionTs: number[][];
} | {
    type: "operand_poly";
    fillType: clipperLib.PolyFillType;
    shape_poly: clipperLib.IntPoint[][];
};
export type StackItem = {
    operand: clipperLib.IntPoint[][];
    fillType: clipperLib.PolyFillType;
};
export declare function combineStack(ops: combineOps[], resolution?: number): Bez3Slice[][];
export declare function combine(op: clipperLib.ClipType, s1: Arcs.Bez3[][], s2: Arcs.Bez3[][], rule1: clipperLib.PolyFillType, rule2: clipperLib.PolyFillType, resolution?: number): Bez3Slice[][];
export declare function removeOverlap(s1: Arcs.Bez3[][], rule: clipperLib.PolyFillType, RESOLUTION?: number): Bez3Slice[][];
export { ClipType, PolyFillType } from "js-angusj-clipper";
