/**
 * @callback VertexReader
 * @param {number} vertexIndex
 * @returns {number}
 */
/**
 * A binned index for vertex ranges that are already emitted into typed arrays.
 * The readers operate on vertices, not source datums.
 *
 * The scan is run-based: consecutive vertices with the same effective x
 * interval are collapsed into one range before binning.
 *
 * @param {number} size Number of bins
 * @param {[number, number]} domain Domain of positions
 * @param {VertexReader} readStart Reader for the start x value at a vertex
 * @param {VertexReader} [readEnd=readStart] Reader for the end x value at a vertex
 * @param {number} [startVertexIndex=0] First vertex index in the scanned range
 * @param {number} [endVertexIndex=startVertexIndex] One past the last vertex index
 * @returns {import("../utils/binnedIndex.js").Lookup | undefined}
 */
export function createVertexRangeIndexer(size: number, domain: [number, number], readStart: VertexReader, readEnd?: VertexReader, startVertexIndex?: number, endVertexIndex?: number): import("../utils/binnedIndex.js").Lookup | undefined;
export type VertexReader = (vertexIndex: number) => number;
//# sourceMappingURL=vertexRangeIndex.d.ts.map