/**
 * Utilities for parsing seek-cursor blobs stored as Git refs.
 *
 * @module parseCursorBlob
 */
interface CursorBlob {
    readonly tick: number;
    readonly mode?: string;
    readonly [key: string]: unknown;
}
/**
 * Parses and validates a cursor blob (Uint8Array) into a cursor object.
 *
 * The blob must contain UTF-8-encoded JSON representing a plain object with at
 * minimum a finite numeric `tick` field.  Any additional fields (e.g. `mode`,
 * `name`) are preserved in the returned object.
 *
 * @throws {Error} If `buf` is not valid JSON
 * @throws {Error} If the parsed value is not a plain JSON object (e.g. array,
 *   null, or primitive)
 * @throws {Error} If the `tick` field is missing, non-numeric, NaN, or
 *   Infinity
 *
 * @example
 * const buf = new TextEncoder().encode('{"tick":5,"mode":"lamport"}');
 * const cursor = parseCursorBlob(buf, 'active cursor');
 * // => { tick: 5, mode: 'lamport' }
 *
 * @example
 * // Throws: "Corrupted active cursor: blob is not valid JSON"
 * parseCursorBlob(new TextEncoder().encode('not json'), 'active cursor');
 */
export declare function parseCursorBlob(buf: Uint8Array, label: string): CursorBlob;
export {};
