/// <reference path="react-table-config.d.ts" />
/// <reference types="react" />
import { CellProps as TableCellProps, CoreUIColumn, HeaderGroup, Row, SortByFn, TableBodyPropGetter, TableBodyProps } from 'react-table';
import { TableHeightKeyType } from './TableUtils';
type UpdateTableData<DATA_ROW extends Record<string, unknown> = Record<string, unknown>> = {
    updateTableData?: <DATA_ROW_KEY extends keyof DATA_ROW>(rowId: string, columnName: DATA_ROW_KEY, value: DATA_ROW[DATA_ROW_KEY]) => void;
};
export type Column<D extends Record<string, unknown>> = CoreUIColumn<D>;
export type CellProps<D extends Record<string, unknown>, V = unknown> = TableCellProps<D, V> & UpdateTableData<D>;
export type TableProps<DATA_ROW extends Record<string, unknown> = Record<string, unknown>> = {
    columns: Array<Column<DATA_ROW>>;
    defaultSortingKey?: string;
    data: DATA_ROW[];
    children: JSX.Element | JSX.Element[];
    getRowId?: (originalRow: DATA_ROW, relativeIndex: number, parent?: Row<DATA_ROW>) => string;
    sortTypes?: Record<string, SortByFn<DATA_ROW>>;
    globalFilter?: string;
    onBottom?: (rowLength: number) => void;
    onBottomOffset?: number;
    allFilters?: {
        id: string;
        value: string;
    }[];
    initiallySelectedRowsIds?: Set<string | number>;
} & UpdateTableData<DATA_ROW>;
type setHiddenColumnFuncType = (oldHidden: string[]) => string[];
type TableContextType<DATA_ROW extends Record<string, unknown> = Record<string, unknown>> = {
    headerGroups: HeaderGroup<DATA_ROW>[];
    rows: Row<DATA_ROW>[];
    prepareRow: (row: Row<DATA_ROW>) => void;
    getTableBodyProps: (propGetter?: TableBodyPropGetter<DATA_ROW>) => TableBodyProps;
    rowHeight: TableHeightKeyType;
    setRowHeight: (rowHeight: TableHeightKeyType) => void;
    selectedRowIds: Record<string, boolean>;
    selectedFlatRows: Row<DATA_ROW>[];
    preGlobalFilteredRows: Row<DATA_ROW>[];
    setGlobalFilter: (filterValue: string) => void;
    globalFilter: any;
    setFilter: (columnId: string, updater: any) => void;
    onBottom?: (rowLength: number) => void;
    onBottomOffset?: number;
    setHiddenColumns: (param: string[] | setHiddenColumnFuncType) => void;
    isAllRowsSelected?: boolean;
    toggleAllRowsSelected: (value?: boolean) => void;
};
export declare const useTableContext: <DATA_ROW extends Record<string, unknown> = Record<string, unknown>>() => TableContextType<DATA_ROW>;
export declare const EmptyCell: ({ tooltipContent, mr, }: {
    tooltipContent?: string | JSX.Element | undefined;
    mr?: number | undefined;
}) => JSX.Element;
declare function Table<DATA_ROW extends Record<string, unknown> = Record<string, unknown>>({ columns, data, defaultSortingKey, getRowId, children, sortTypes, globalFilter, allFilters, onBottom, onBottomOffset, initiallySelectedRowsIds, updateTableData, }: TableProps<DATA_ROW>): JSX.Element;
declare namespace Table {
    var SingleSelectableContent: typeof import("./SingleSelectableContent").SingleSelectableContent;
    var MultiSelectableContent: <DATA_ROW extends Record<string, unknown> = Record<string, unknown>>({ onMultiSelectionChanged, onSingleRowSelected, onToggleAll, rowHeight, separationLineVariant, backgroundVariant, locale, customItemKey, isLoadingMoreItems, children, }: {
        onMultiSelectionChanged?: ((rows: Row<DATA_ROW>[]) => void) | undefined;
        onSingleRowSelected?: ((row: Row<DATA_ROW>) => void) | undefined;
        onToggleAll?: ((selected: boolean) => void) | undefined;
        rowHeight?: TableHeightKeyType | undefined;
        separationLineVariant?: import("./TableUtils").TableVariantType | undefined;
        backgroundVariant?: import("./TableUtils").TableVariantType | undefined;
        locale?: import("./TableUtils").TableLocalType | undefined;
        customItemKey?: ((index: number, data: DATA_ROW) => string) | undefined;
        hasScrollbar?: boolean | undefined;
        isLoadingMoreItems?: boolean | undefined;
        children?: ((rows: JSX.Element) => JSX.Element) | undefined;
    }) => JSX.Element;
    var Search: typeof import("./Search").TableSearch;
    var SearchWithQueryParams: typeof import("./SearchWithQueryParams").SearchWithQueryParams;
}
export { Table };
//# sourceMappingURL=Tablev2.component.d.ts.map