import '../../../globals.js';
/**
 * Simplification of a polygon for clipping output (compacts equal or axis-aligned-collinear points).
 *
 * TODO: ClipSimplifier should accept Vector2, and store it if possible (instead of mutating)
 *
 * TODO: Create a "not-a-simplifier" to swap into the simplifier to ensure testing works nicely.
 *
 * TODO: ClipSimplifier collinearity checks, to see if we are missing things and this improves things drastically?
 * TODO: Like, enable general collinearity, and inspect cases to see if it changes how many pixels get partials?
 * TODO: Or improves performance
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Matrix3 from '../../../dot/js/Matrix3.js';
import Vector2 from '../../../dot/js/Vector2.js';
export default class ClipSimplifier {
    private readonly checkGeneralCollinearity;
    private points;
    constructor(checkGeneralCollinearity?: boolean);
    addTransformed(matrix: Matrix3, x: number, y: number): void;
    addPoint(p: Vector2): void;
    add(x: number, y: number): void;
    hasPoints(): boolean;
    /**
     * Treats the entire list of points so far as a closed polygon, completes simplification (between the start/end),
     * returns the simplified points, AND resets the state for the next time
     */
    finalize(): Vector2[];
    finalizeInto(polygons: Vector2[][]): void;
    reset(): void;
    static simplifyPolygon(polygon: Vector2[], checkGeneralCollinearity?: boolean): Vector2[];
}
//# sourceMappingURL=ClipSimplifier.d.ts.map