import { CellCoords, CellRangeCoords } from '@sheetxl/common';
/**
 * Compares a coords to a range.
 * Note - This doesn't follow a traditional comparator pattern because it's compare different types.
 */
export declare const coordsRangeComparator: (isColScan: boolean, coords: CellCoords, range: CellRangeCoords) => number;
/**
 * This class is used for scanning a set of ranges in an efficient way.
 * The most important aspect of this algo is that the rectangles do not
 * overlap.
 *
 * 1. This will scan ranges along an axis.
 * 2. If a range spans multiple rows or columns it can be returned multiple times.
 * 3. This uses cursors to track locations
 * This uses cursors to track locations
 */
export declare class CellRangeScanner {
    private ranges;
    private isColScan;
    private currentRangeIndex;
    private currentRange;
    private currentScanIndex;
    private currentValueIndex;
    private spanRanges;
    private spanRangeIndex;
    private currentSpanRange;
    private nextSpanEnd;
    constructor(ranges: CellRangeCoords[], isColScan?: boolean);
    /**
     * Returns the range that intersect the coords or null if none.
     * @param coords
     * @returns CellRangeCoords if found
     */
    nextIntersectRange(coords: CellCoords): CellRangeCoords | null;
}
export default CellRangeScanner;
//# sourceMappingURL=CellRangeScanner.d.ts.map