interface IOptions {
    windingRule?: number;
    elementType?: number;
    polySize?: number;
    vertexSize?: 2 | 3;
    contours: Array<Array<number>>;
    strict?: boolean;
    debug?: boolean;
}
export interface IResult {
    vertices: ArrayLike<number>;
    vertexIndices: ArrayLike<number>;
    vertexCount: number;
    elements: ArrayLike<number>;
    elementCount: number;
    mesh: any;
}
export interface ITess2 {
    tesselate({ windingRule, elementType, polySize, vertexSize, contours, strict, debug, }: IOptions): IResult | undefined;
}
declare const enum WINDING {
    ABS_GEQ_TWO = 4,
    NEGATIVE = 3,
    NONZERO = 1,
    ODD = 0,
    POSITIVE = 2
}
declare const enum ELEMENT {
    BOUNDARY_CONTOURS = 2,
    CONNECTED_POLYGONS = 1,
    POLYGONS = 0
}
export interface TesselatorTaskInput {
    id: number;
    contours: Float32Array[];
    polySize: 2 | 3;
    vertexSize: 2;
    windingRule: WINDING;
    elementType: ELEMENT;
    scaleRatio: number;
}
export interface TesselatorTaskError {
    status: 'error';
    reason: string;
    id: number;
}
export interface TesselatorTaskResult {
    executionTime: number;
    status: 'done';
    id: number;
    buffer?: Float32Array;
}
export interface TesselatorTaskReady {
    status: 'ready';
}
export type TesselatorMessage = TesselatorTaskResult | TesselatorTaskError | TesselatorTaskReady;
export declare const WORKER_BODY: () => void;
export {};
//# sourceMappingURL=WorkerTesselatorBody.d.ts.map