import type { Table as TanStackTable } from '@tanstack/table-core';
import { type VirtualItem, type ScrollToOptions } from '@tanstack/virtual-core';
import type { Table } from '..';
import type { TableNode, TableRecord } from '../types';
/**
 * Helper class for the nimble-table for row virtualization.
 *
 * @internal
 */
export declare class Virtualizer<TData extends TableRecord = TableRecord> {
    visibleItems: VirtualItem[];
    scrollHeight: number;
    horizontalScrollbarHeight: number;
    isScrolling: boolean;
    headerContainerMarginRight: number;
    rowContainerYOffset: number;
    get pageSize(): number;
    private readonly table;
    private readonly tanStackTable;
    private readonly viewportResizeObserver;
    private virtualizer?;
    private _pageSize;
    constructor(table: Table<TData>, tanStackTable: TanStackTable<TableNode<TData>>);
    connect(): void;
    disconnect(): void;
    dataChanged(): void;
    scrollToIndex(index: number, options?: ScrollToOptions): void;
    updateRowHeight(): void;
    private updateVirtualizer;
    private createVirtualizerOptions;
    private handleVirtualizerChange;
    private updatePageSize;
}
