import { AssetError, type Result } from '@forgeax/engine-types'; import type { Vec2Point } from './procedural'; export interface PolygonShape { readonly contour: readonly Vec2Point[]; readonly holes?: readonly (readonly Vec2Point[])[]; } export declare function geometryError(field: string, reason: string): AssetError; export declare function area(points: readonly Vec2Point[]): number; export declare function contains(loop: readonly Vec2Point[], p: Vec2Point): boolean; /** Copy and orient material on the left: outer CCW, holes CW. No input mutation. */ export declare function preparePolygon(shape: PolygonShape): Result; export declare function triangulatePolygon(loops: readonly (readonly Vec2Point[])[]): Result; /** Inset offset-line intersections. Refuse topology changes rather than clipping silently. */ export declare function insetPolygon(loops: Vec2Point[][], distance: number): Result; //# sourceMappingURL=contour.d.ts.map