import { ReactNode } from 'react';
import { DataListTableLayoutDefaults } from './configTypes';
import { ColumnDef, DataListTableInfiniteConfig, SortState } from './types';
export type DataListTableScrollMode = "fill-parent" | "content-height";
export interface ConfigurableDataListTableProps<TData> {
    columnOrder: readonly string[];
    columns: ColumnDef<TData>[];
    componentName: string;
    data: TData[];
    layoutDefaults: DataListTableLayoutDefaults;
    currentScrollYOffset?: number;
    "data-testid"?: string;
    fillParent?: boolean;
    infiniteLoader?: DataListTableInfiniteConfig;
    isFirstLotLoading?: boolean;
    isLoadingNextPeriod?: boolean;
    /** True while a "load previous" period fetch is in progress (shows top skeleton row). */
    isLoadingPreviousPeriod?: boolean;
    quickViewColumnOrder?: readonly string[];
    quickViewColumns?: ColumnDef<TData>[];
    /**
     * Controls the table's vertical sizing strategy.
     * - `"fill-parent"`: table fills its parent container and scrolls internally (default).
     * - `"content-height"`: table expands to the full height of its content with no
     *    internal scrollbar; the parent / page scrolls instead.
     *
     * When set, takes precedence over the `fillParent` prop.
     */
    scrollMode?: DataListTableScrollMode;
    scrollToBottomOnLoad?: boolean;
    selectedRowIds?: string[];
    sortState?: SortState | null;
    trackPerformance?: boolean;
    getRowId: (row: TData) => string;
    onListInnerElementHeightChanged?: (listInnerElemHeight: number) => void;
    onScroll?: (scrollYOffset: number) => void;
    onSortChange?: (next: SortState | null) => void;
    renderFooterBelowFrame?: () => ReactNode;
}
declare const _default: <TData>(props: Readonly<ConfigurableDataListTableProps<TData>> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
export default _default;
