import React from 'react';
import TableCell from './components/TableCell.js';
import TableHeadCell from './components/TableHeadCell.js';
import TableRow from './components/TableRow.js';
import TableHeadRow from './components/TableHeadRow.js';
type ReactComponentOrElement<Props = any> = React.FC<Props> | React.ReactElement<Props>;
export type TableProps = React.PropsWithChildren<{
    data: Array<{
        [key: string]: any;
    }>;
    keyProp: string;
    onClickRow?: (info: {
        rowData: {
            [key: string]: any;
        };
        rowKey: string;
        rowIndex: number;
        data: Array<{
            [key: string]: any;
        }>;
    }) => void;
    onSetRecordsPerPage?: (newRecordsPerPage: number) => void;
    onSetSkippedRecords?: (skippedRecords: number) => void;
    recordsPerPage?: number;
    skippedRecords?: number;
    totalRecords?: number;
    Controls?: ReactComponentOrElement<{
        clearSelectedRows: () => void;
        data: Array<{
            [key: string]: any;
        }>;
        selectedRowsData: Array<{
            [key: string]: any;
        }>;
        selectedRowsKeys: Array<string>;
    }>;
    HeadRow?: ReactComponentOrElement<{
        data: Array<{
            [key: string]: any;
        }>;
    }>;
    Row?: ReactComponentOrElement<{
        data: Array<{
            [key: string]: any;
        }>;
        rowData: {
            [key: string]: any;
        };
        rowIndex: number;
        rowKey: string;
    }>;
}>;
export type TableGroupType = React.FC<TableProps> & {
    HeadCell: typeof TableHeadCell;
    HeadRow: typeof TableHeadRow;
    Cell: typeof TableCell;
    Row: typeof TableRow;
};
declare const TableGroup: TableGroupType;
export { TableGroup };
