import { default as React } from 'react';
import { MRT_ColumnDef, MRT_Header, MRT_RowData, MRT_TableInstance } from 'material-react-table';

type ExtraEditVariants = 'file' | 'image' | 'date' | 'number' | 'time' | 'date_time' | 'phone' | 'checkbox';
type DisableFunction = (row: any, virtualRow?: any) => boolean;
export type TypeBooleanLabels = {
    1: string;
    0: string;
    true: string;
    false: string;
};
export interface MaterialEditableTableColumnProps extends Omit<MRT_ColumnDef<MRT_RowData>, 'editVariant'> {
    visible?: boolean;
    type?: string;
    showDefaultCurrency?: boolean;
    valueGet?: string;
    custom_class?: string;
    typeArrayAccessorKey?: string;
    typeBooleanLabels?: TypeBooleanLabels;
    editVariant?: MRT_ColumnDef<MRT_RowData>['editVariant'] | ExtraEditVariants;
    editProperties?: {
        field_name?: string;
        valueKey?: string;
        placeholder?: string;
        dateFormat?: string;
        validations?: any[];
        is_multiple?: boolean;
        is_multiline?: boolean;
        disable?: boolean | DisableFunction;
        min_date?: any;
        max_date?: any;
    };
    redirectionPathWithId?: string;
    idField?: string;
    isOnClickEditable?: boolean;
}
export interface MaterialEditableTableColumnHeaderProps {
    column: MRT_ColumnDef<any, any>;
    header: MRT_Header<any>;
    table: MRT_TableInstance<any>;
}
export type RowValues = Record<string, unknown>;
declare const MaterialEditableTable: React.MemoExoticComponent<({ enablePagination, rows, columns, totalPages, paginationModel, columnOrder, updateData, handleColumnOrdering, enableEditing, enableColumnDragging, states, rowActionMenu, destructiveActionMenu, disableDefaultActionColumn, enableRowSelection, defaultActionColumnItems, enableBottomToolbar, SetSelectedRowId, isResetRow, onCreateRow, onEditRow, onDeleteRow, editDisplayMode, enableRowCreate, onChangeRowField, onSelectRow, enableColumnResizing, selectedRowIds, onColumnVisibility, onSortingChange, getSelectedData, disabledDefaultActionColumnIcon, enableAddCustomField, enableRowDragging, handleColumnResizing, columnSizes, hideSaveButton, hideDeleteButton, enableFirstRowEdit, ...rest }: MaterialTablePropsType) => import("react/jsx-runtime").JSX.Element>;
export { MaterialEditableTable };
export default MaterialEditableTable;
