import { IIndexSetCursor } from "../core/i_index_set_cursor.js"; /** * An index cursor that allows multiple index ranges from the same buffer to be * xor'd together. * * This is useful for aggregating changes to indices, because it can both flip off * and flip on items. */ export declare class MultiIndexSetCursorXor implements IIndexSetCursor { private buffer_?; private cursorSet_; private currentOpCount_; private high_; private low_; /** * Construct this, not accessible. */ private constructor(); /** * Get the current high 27 bits, as a regular number with the lower 5 bits * padded to zero. * * @return {number} The high bits. */ get high(): number; /** * Get a set of up to 32 low bits, in one-hot format or'd together, * so that each bit index represents a 5 bit bottom part corresponding to the top 27 * * @return {number} The high bits. */ get low(): number; /** * Step this cursor to the next high (and matching set of lows) * * @return {boolean} True if this is not at the end of the sequence, * false otherwise. */ step(): boolean; /** * Allocate a MultiIndexSetCursorXor, re-using freed ones in the pool. * * @param buffer * @return {MultiIndexSetCursorXor} The allocated cursor. */ static allocate(buffer: Uint32Array): MultiIndexSetCursorXor; /** * Add a range from the multi-set buffer to the cursor. * * @param from The start of the range. * @param to The end of the range (not inclusive) */ addRange(from: number, to: number): void; /** * Free this back to the pool. */ free(): void; } //# sourceMappingURL=multi_index_set_cursor_xor.d.ts.map