import type { Transaction } from "@olenbetong/appframe-updater"; import { type Dispatch, type SetStateAction } from "react"; import { type EditorTransactionRow, type TableColumn } from "./tableFormatting.js"; export declare const CURSOR_ACTIVE = ">"; export declare const CURSOR_INACTIVE = " "; export declare const SELECTION_ACTIVE = "[x]"; export declare const SELECTION_INACTIVE = "[ ]"; export declare const PREFIX_SPACER = " "; export declare const CURSOR_PREFIX_WIDTH: number; export declare const HEADER_PREFIX: string; export type TransactionsViewportLine = { key: string; text: string; highlight: boolean; }; export interface VirtualScrollingStats { totalRowCount: number; displayedRowCount: number; firstVisibleRow: number; lastVisibleRow: number; } export interface UseVirtualScrollingOptions { cursor: number; setCursor: Dispatch>; dataAreaHeight: number; rows: EditorTransactionRow[]; columns: TableColumn[]; widths: number[]; tableContentWidth: number; lineWidth: number; normalizedTransactions: Transaction[]; selectedPrimKeys: Set; modifiedPrimKeys: Set; loading: boolean; initialOffset?: number; } export interface UseVirtualScrollingResult { offset: number; setOffset: Dispatch>; bodyLines: TransactionsViewportLine[]; pageStep: number; stats: VirtualScrollingStats; } export declare function useVirtualScrolling({ cursor, setCursor, dataAreaHeight, rows, columns, widths, tableContentWidth, lineWidth, normalizedTransactions, selectedPrimKeys, modifiedPrimKeys, loading, initialOffset, }: UseVirtualScrollingOptions): UseVirtualScrollingResult;