import { IndexedPolyface } from "./Polyface";
export declare class FacetOrientationFixup {
    private _edges;
    private _edgeToPartnerEdge;
    private _edgeToEdgeInComponent;
    private _facetToFirstEdgeInComponent;
    private _facetOrientation;
    private _components;
    private _visitor;
    private _mesh;
    private constructor();
    private edgeIdToFacetOrientation;
    /**
     * RETURN FALSE IF ANY EDGE HAS 3 OR MORE FACETS
     */
    private setupUnoriented;
    private recordFacetInComponent;
    private initializeComponent;
    private _workArray;
    private pushFacetEdgesOnStack;
    /**
     * * Run flood search from every possible seed, assigning positive and negative orientations
     * * Halt and return false if flood detects Klein bottle effects.
     * @return true if flood
     */
    private doFlood;
    private doFacetReversals;
    static doFixup(mesh: IndexedPolyface): boolean;
    /** swap entries at indices in a number array.
     * * indices are not checked for validity.
     */
    private static swapEntries;
    /**
     *
     * @param data an array of cyclically linked loops.
     */
    private static extractCyclicIndices;
}
//# sourceMappingURL=FacetOrientation.d.ts.map