import type { ResolvedBrowseSort } from "./browse-order.js"; import type { BrowseQuery, MemoryRecord } from "./types.js"; export declare const BROWSE_CURSOR_VERSION = 1; export type BrowseCursorValue = string | number; export interface BrowseCursorPayload { /** Raw stored sort-key values, one per ordered field, in order. */ readonly key: readonly BrowseCursorValue[]; readonly id: string; } /** * Fingerprint of the query's DATASET IDENTITY — every field that changes which rows * match or in what order, and nothing else. `limit`/`offset`/`cursor` are paging, * not identity. Encoded into every cursor so a continuation can never smuggle its * own query into a different request. */ export declare function browseQueryFingerprint(query: BrowseQuery): string; /** The raw stored values of `record` for the ordered fields, in order. */ export declare function browseCursorKey(record: MemoryRecord, order: readonly ResolvedBrowseSort[]): readonly BrowseCursorValue[]; export declare function encodeBrowseCursor(fingerprint: string, payload: BrowseCursorPayload): string; /** Decode a continuation and check it against the request's OWN parameters. */ export declare function decodeBrowseCursor(cursor: string, fingerprint: string, order: readonly ResolvedBrowseSort[]): BrowseCursorPayload; //# sourceMappingURL=browse-cursor.d.ts.map