import { TableColumn as WSRTableColumn, TableProps } from '@wix/design-system';
import React, { ComponentType, ForwardRefExoticComponent, ReactElement } from 'react';
import { FiltersMap, KeyedItem } from '@wix/bex-core';
import { TableState, ToolbarCollectionState } from '../../state';
import { ToolbarCollectionBaseProps } from '../ToolbarCollection';
import { CollectionTableContentBaseProps } from './CollectionTableContent';
import { CollectionToolbarsVisualizationProps } from '../CollectionToolbars/CollectionToolbarsVisualization';
export interface CollectionTableWSRTableBaseProps<U, T, F extends FiltersMap> extends ToolbarCollectionBaseProps<T, F>, CollectionTableContentBaseProps, Omit<TableProps<KeyedItem<U>>, 'columns' | 'data' | 'rowDataHook' | 'onRowClick' | 'onDragEnd' | 'onDragStart' | 'onDragCancel' | 'isDragAndDropDisabled' | 'hideBulkSelectionCheckbox'> {
    useShowLoaderWhenEmpty?: boolean;
    useNewInfiniteScrollLoader?: boolean;
    /**
     * Whether to add a sticky column. <br>
     * Sticky columns allow you to display specific columns at all times while the visitor scrolls the table horizontally.
     * @external
     */
    stickySelectionColumn?: boolean;
    /**
     * Limits the amount of rows a visitor can select.
     * @external
     */
    maxSelection?: number;
    /**
     * Hides bulk selection checkbox in the table titlebar, If the [`MultiBulkActionToolbar`](./?path=/story/features-actions-bulk-actions--multibulkactiontoolbar) feature is enabled, this flag will have no effect.
     * @external
     */
    hideBulkSelectionCheckbox?: boolean;
    BodyElementType?: ComponentType<{
        children: ReactElement[];
    }>;
    TrElementType?: ForwardRefExoticComponent<{
        children: ReactElement[];
        rowData: any;
        className: string;
    }>;
    visualization?: CollectionToolbarsVisualizationProps<T, F>['visualization'];
}
export interface CollectionTableWSRTableProps<U, T, F extends FiltersMap> extends CollectionTableWSRTableBaseProps<U, T, F> {
    state: {
        tableState: TableState<T, F>;
        toolbar: ToolbarCollectionState<T, F>;
        keyedItems: KeyedItem<U>[];
        showLoadingState: boolean;
        showEmptyState: boolean;
    };
    sticky: boolean;
    columns: WSRTableColumn<KeyedItem<U>>[];
    onRowClick?: (item: KeyedItem<U>, index: number) => void;
    keyedItems?: KeyedItem<U>[];
}
declare function _CollectionTableWSRTable<U, T, F extends FiltersMap = FiltersMap>(props: CollectionTableWSRTableProps<U, T, F>): React.JSX.Element;
export declare const CollectionTableWSRTable: typeof _CollectionTableWSRTable & {
    displayName: string;
};
export {};
//# sourceMappingURL=CollectionTableWSRTable.d.ts.map