/** @packageDocumentation
 * @module Tiles
 */
import { ImdlModel } from "./ImdlModel";
import { VertexIndices } from "../internal/render/VertexIndices";
/** Parameters supplied to [[indexedEdgeParamsFromCompactEdges]].
 * @internal
 */
export interface CompactEdgeParams {
    /** The number of always-visible edges.
     * @note The number of silhouette edges is the same as the number of [[normalPairs]].
     */
    numVisibleEdges: number;
    /** 2 bit visibility of each edge to the next edge in the triangle, in the same order as the triangle indices in [[vertexIndices]]. */
    visibility: Uint8Array;
    /** The indices describing the topology of the triangle mesh. */
    vertexIndices: VertexIndices;
    /** If any silhouettes are present, the [OctEncodedNormalPair]($common)s associated with each. */
    normalPairs?: Uint32Array;
    /** The maximum width or height for the resultant [[EdgeTable]]. */
    maxEdgeTableDimension: number;
}
/** @internal */
export interface CompactEdge {
    index0: number;
    index1: number;
    normals?: number;
}
/** Iterate over the compact edges.
 * @note The same object is returned on each iteration, mutated in place.
 * @internal
 */
export declare function compactEdgeIterator(visibilityFlags: Uint8Array, normalPairs: Uint32Array | undefined, numIndices: number, decodeIndex: (index: number) => number): IterableIterator<CompactEdge>;
/** Convert an [[ImdlCompactEdges]] to an [[IndexedEdgeParams]].
 * @internal
 */
export declare function indexedEdgeParamsFromCompactEdges(compact: CompactEdgeParams): ImdlModel.IndexedEdgeParams | undefined;
//# sourceMappingURL=CompactEdges.d.ts.map