import type { View } from "@perspective-dev/client"; /** * A single row's column values, keyed by column name. Numeric columns * yield a `number`; string (dictionary) columns yield the decoded * `string`; invalid (null) cells yield `null`. */ export type LazyRow = Map; /** * On-demand single-row fetcher backing lazy tooltip lookups. Given a * view row index, performs `view.with_typed_arrays({start_row, end_row: * start_row+1})` and projects the result into a plain `Map`. Concurrent * fetches for the same index are deduped into one Promise; resolved * rows are cached in a bounded LRU keyed by rowIdx. * * Invalidation is lifecycle-driven: the owning chart disposes and * constructs a new fetcher whenever its underlying view changes (i.e. * on each `draw`). In-flight fetches from the prior fetcher still * resolve, but callers stamp each fetch with a serial and discard * results whose serial no longer matches — so stale rows never reach * the tooltip. See the per-chart hover/pin paths for that plumbing. */ export declare class LazyRowFetcher { private _view; private _cache; private _inFlight; private readonly _maxCacheSize; constructor(view: View, maxCacheSize?: number); fetchRow(rowIdx: number): Promise; private _fetch; dispose(): void; get isDisposed(): boolean; }