import React, { Dispatch, MutableRefObject, SetStateAction } from 'react';
import { ICellInfo, IColumnTable, IFFilterTable, IFOrderTable, IFTableEditButton, IFTableEditFormat, IFTableEditToolbar, IHeaderColumnTable } from '../type';
interface TableComponentProps {
    idTable?: string;
    dataSource: any[];
    contentColumns: IColumnTable[];
    headerColumns: IHeaderColumnTable[][];
    selectedRows: any[];
    selectedCell?: {
        minRow: number;
        maxRow: number;
        minCol: number;
        maxCol: number;
    };
    startCell: ICellInfo;
    editCell?: ICellInfo;
    gridRef: any;
    objHeaderWidthFixLeft: Record<string, number>;
    objHeaderWidthFixRight: Record<string, number>;
    objWidthFixLeft: Record<number, number>;
    objWidthFixRight: Record<number, number>;
    lastObjWidthFixLeft: number;
    fisrtObjWidthFixRight: number;
    totalCount: number;
    isMulti?: boolean;
    selectEnable?: boolean;
    editDisable?: boolean;
    addDisable?: boolean;
    defaultValue?: any;
    fieldKey: string;
    fieldUniKey?: string[];
    formatSetting?: IFTableEditFormat;
    toolbarSetting?: IFTableEditToolbar;
    buttonSetting?: IFTableEditButton;
    containerRef: any;
    isCopying: MutableRefObject<boolean>;
    typeDragging: MutableRefObject<number>;
    visibleContentColumns: IColumnTable[];
    filterBy: IFFilterTable[];
    orderBy: IFOrderTable[];
    optionsFilter: any;
    allowFiltering?: boolean;
    allowSorting?: boolean;
    searchSetting?: any;
    searchTerm?: string;
    haveSum?: boolean;
    height: number;
    rowHeight: number;
    searchClient?: boolean;
    rowChange?: (row: any, indexRow: number, field: string) => void;
    setSelectedRows: Dispatch<SetStateAction<any[]>>;
    setContentColumns: (col: any[]) => void;
    handleDataChange: (row: any, col: IColumnTable, indexRow: number) => void;
    changeDataSource: (newData: any[]) => void;
    handleCommandClick: (id: string, rowData: any, index: number) => void;
    handleDuplicate: () => void;
    handleKeyDown: (e: React.KeyboardEvent<HTMLDivElement>, row: any) => void;
    onDuplicate?: (newData: any, index: number) => void;
    setSelectedCell: Dispatch<SetStateAction<{
        minRow: number;
        maxRow: number;
        minCol: number;
        maxCol: number;
    } | undefined>>;
    setStartCell: Dispatch<SetStateAction<ICellInfo>>;
    focusEditElementCell: (e: any, row: number, col: number) => void;
    setFilterBy: (val: any[]) => void;
    setOrderBy: (val: any[]) => void;
    handeCopyCell: (indexColCopy: number, indexRowCopy: number, maxRowPaste: number) => Promise<void>;
}
declare const TableComponent: React.FC<TableComponentProps>;
export default TableComponent;
