import { type RowNode } from "@1771technologies/lytenyte-shared"; import type { LeafOrParent, TreeLeaf, TreeRootAndApi } from "./async-tree/types.js"; import { RangeTree } from "./range-tree/range-tree.js"; import type { DataRequest, DataResponse, DataResponsePinned } from "./types.js"; export type DataFetcher = (req: DataRequest[], expansions: Record) => Promise<(DataResponse | DataResponsePinned)[]>; export interface FlatView { readonly tree: TreeRootAndApi; readonly top: number; readonly center: number; readonly bottom: number; readonly rangeTree: RangeTree; readonly rowIndexToRow: Map>; readonly rowIdToRow: Map>; readonly rowIdToRowIndex: Map; readonly rowIdToTreeNode: Map; readonly loading: Set; readonly loadingGroup: Set; readonly errored: Map; readonly erroredGroup: Map; readonly maxDepth: number; readonly seenRequests: Set; } export interface ServerDataConstructorParams { readonly blocksize: number; readonly expansions: Record; readonly onResetLoadBegin: () => void; readonly onResetLoadError: (error: unknown) => void; readonly onResetLoadEnd: () => void; readonly onFlatten: (r: FlatView) => void; readonly onInvalidate: () => void; readonly defaultExpansion: boolean | number; } export declare class ServerData { #private; tree: TreeRootAndApi; flat: FlatView; constructor({ blocksize, expansions, onResetLoadBegin, onResetLoadEnd, onResetLoadError, onFlatten, onInvalidate, defaultExpansion, }: ServerDataConstructorParams); set dataFetcher(d: DataFetcher); set expansions(d: Record); set defaultExpansion(d: boolean | number); set rowViewBounds(viewBounds: [start: number, end: number]); reset: () => Promise; requestForGroup(i: number): DataRequest | null; handleRequests: (requests: DataRequest[], opts?: { onError?: (e: unknown) => void; onSuccess?: () => void; skipState?: boolean; }) => Promise; handleResponses: (data: (DataResponse | DataResponsePinned)[], beforeOnFlat?: () => void) => void; requestForNextSlice(req: DataRequest): { id: string; path: (string | null)[]; start: number; end: number; rowStartIndex: number; rowEndIndex: number; } | null; requestsForView(start?: number, end?: number): DataRequest[]; handleViewBoundsChange(): Promise; retry(): void; addBefore(leafs: TreeLeaf[]): void; addAfter(leafs: TreeLeaf[]): void; deleteBefore(leafs: string[]): void; deleteAfter(leafs: string[]): void; updateRow(id: string, data: any, asOf?: number): void; flatten: () => void; }