/**
 * Boolean operations for vector shapes
 * Implements union, difference, intersection, and exclusion operations
 */
import type { VShape } from "./vectorEditorTypes";
export type Point = {
    x: number;
    y: number;
};
export type Segment = {
    start: Point;
    end: Point;
};
export type BooleanOp = "union" | "difference" | "intersection" | "exclusion";
/** Perform boolean operation on two shapes */
export declare function booleanOperation(shapeA: VShape, shapeB: VShape, operation: BooleanOp): VShape | VShape[] | null;
/** Check if two shapes overlap */
export declare function shapesOverlap(shapeA: VShape, shapeB: VShape): boolean;
/** Group shapes into compound path */
export declare function groupToCompound(shapes: VShape[]): VShape | null;
/** Flatten a polyline to individual segment shapes (for outline stroke) */
export declare function flattenToOutline(shape: VShape, strokeWidth?: number): VShape;
