import { type MRT_Row, type MRT_TableInstance } from 'mantine-react-table';
import React from 'react';
import type { CoreTableColumnDef, SortConfig } from './types';
type CoreTableProps<T extends {
    id: string | number;
}> = {
    columns: CoreTableColumnDef<T>[];
    data: T[];
    sortable?: boolean;
    multiSorting: boolean;
    sortConfig?: SortConfig | null;
    onSort?: (sortKey: string, sortDirection: 'asc' | 'desc') => void;
    setSortBy?: (sortKey: string) => void;
    setSortDir?: (sortDir: string) => void;
    selectable?: boolean;
    selectedRows?: (string | number)[];
    onSelectRow?: (id: string | number) => void;
    onSelectAll?: (selected: boolean) => void;
    enablePagination?: boolean;
    enableGlobalFilters?: boolean;
    enableManualSorting?: boolean;
    enableManualPagination?: boolean;
    expandable?: boolean;
    renderExpandableComponent?: (props: {
        row: MRT_Row<T>;
        table: MRT_TableInstance<T>;
    }) => React.ReactNode;
    pagination?: {
        enabled: boolean;
        pageIndex: number;
        pageSize: number;
        itemsPerPage: number;
        itemsPerPageOptions?: number[];
        onPageChange: (page: number) => void;
        onPaginationChange: (index: number, size: number) => void;
    };
};
declare const CoreTable: <T extends {
    id: string | number;
}>({ columns, data, sortable, sortConfig, onSort, selectable, selectedRows, onSelectRow, onSelectAll, enablePagination, expandable, renderExpandableComponent, pagination, enableGlobalFilters, enableManualSorting, enableManualPagination, multiSorting, setSortBy, setSortDir, ...props }: CoreTableProps<T>) => import("react/jsx-runtime").JSX.Element;
export default CoreTable;
