import React from 'react';
import { ITablePro } from '../../1properties/0define/1comp/table';
import FormComponent from '../2formItem/abasecomp';
import { IResult } from 'src/4common/http';
interface IState {
    dictionaryItem: any;
    sortColumn: string;
    sortType: string;
    renderindex: number;
    columnWidth: any;
    upDate: number;
    headerCheck: boolean;
    getValueMaps: any;
    editable: boolean | number;
    resetConfig: any;
}
interface getValueCall {
    call: (data: Array<any>, name: string, field: Array<any>, table: any) => Promise<IResult>;
    target: Array<any>;
}
export default class TwTable extends FormComponent<ITablePro, IState> {
    getValueKeys: Map<string, getValueCall>;
    dictionaryCode: Set<any>;
    _prefixKey: string;
    uuid: string;
    tableheight: number;
    renderData: boolean;
    columnFormater: any;
    pageLengthMenu: any;
    pageSize: number;
    hasRender: boolean;
    showColumnSearch: boolean;
    showTips: boolean;
    headerHeight: number;
    columnSearch: any;
    columnSearchVal: any;
    prevTime: any;
    inputTimeOut: number;
    tableWidth: any;
    constructor(props: any);
    static getViewType(): string;
    _getUniueKey: (...key: string[]) => string;
    _getTrue(value: any): boolean;
    setEditable: (editable: any) => void;
    /**
     *
     * @param value :当前的数据
     * @param _ :数据行内容
     * @param field :字段配置
     */
    fileFormatter: (value: any, _: any, field: any) => any;
    doOnChange: (value: any, name: any, row: any, field: any, event: any) => void;
    /**
     *
     * @param value :当前值
     * @param _ :数据行
     * @param field :字段配置
     */
    dateFormatter: (value: any, row: any, field: any) => string | React.JSX.Element;
    __getKey(field: any, value: any): any;
    doOne: (value: any, field: any, map: any) => any;
    __mapValue: (field: any, value: any, map: any) => any;
    selectFormatter: (value: any, row: any, field: any) => any;
    switchFormatter: (value: any, row: any, field: any) => React.JSX.Element;
    _current_can_editable(field: any, row: any): any;
    valueFormatter: (value: any, row: any, field: any) => any;
    twViewFormatter(value: any, row: any, field: any): React.JSX.Element;
    _replaceKey: (value: any, rowData: any, field: any) => any;
    getForamtter(field: any): any;
    getValueFormatter: (value: any, row: any, field: any) => any;
    __getSearchExtend: (twView: string, field: any) => any;
    __renderFormater: (showTipsv: boolean, formatter: any, rowData: any, name: any, field: any, index: number) => any;
    cellClick(call: any, data: any, name: any, field: any, index: any): ((event: any) => void) | undefined;
    __renderSetCellProps(cellPropsStyle: any, rowData: any, name: any, field: any, index: any): any;
    renderFormatter(prop: any, field: any, Cell: React.ComponentType): React.JSX.Element;
    searchChange: (val: any, type: any, field: any) => any;
    _toNumber(value: any): any;
    renderColumn(prop: any, _field: any): React.JSX.Element | null;
    getIterCehckItem(callback: any): any;
    renderCheckBox(prop: ITablePro): {
        label: React.JSX.Element;
        name: string;
        width: number;
        showtips: number;
        columnSearch: null;
        isCheckBox: boolean;
        fixed: string | boolean;
        styles: {
            display: string;
        };
        formatter: (_: any, rowData: any) => React.JSX.Element;
    } | null;
    renderOrder(prop: any, page: any): {
        name: string;
        label: string;
        showtips: number;
        columnSearch: null;
        width: number;
        formatter: (_: any, __: any, ___: any, index: number) => number;
    } | null;
    renderPage(property: any): React.JSX.Element | null;
    getOperateWidth(prop: ITablePro): number;
    renderOperation(prop: ITablePro): {
        name: string;
        label: string;
        fixed: any;
        showtips: number;
        columnSearch: null;
        width: number;
        formatter: (_: any, rowData: any) => React.JSX.Element;
    } | null;
    /**
     * 设置全局的需要远程查询的数据
     * @param props :全局的配置
     */
    setRemoteCall(props: ITablePro): Promise<IResult>[];
    resetDictionary(data: any): Promise<IResult>;
    resetGetValue(props: ITablePro): Promise<IResult>;
    _dataIsEqual(next: ITablePro, current: ITablePro): boolean;
    shouldComponentUpdate(props: ITablePro): boolean;
    _setFieldStaticOption(field: any): void;
    _bindResetConfig(props: ITablePro): void;
    _doUpdate: (index: any) => void;
    _proxyInfo: (cell: any) => void;
    calculdateFieldsWidth(propInfo: ITablePro): Promise<IResult>;
    _domUpDate: () => void;
    generatePage(maxLength: number): {
        value: number;
        label: number;
    }[];
    addToMenu(propsPage: any, maxLength: number): any;
    _resetInfo(props: ITablePro, resetConfig: any): void;
    resetDefaultConfigDo(props: ITablePro): Promise<IResult>[];
    resetDefaultConfig(props: ITablePro): void;
    updateHeight(props: ITablePro): Promise<IResult>[];
    componentDidMount(): void;
    resizeTable: () => void;
    componentWillUnmount(): void;
    /**
     * 进行数据排序
     * @param sortColumn 排序字段
     * @param sortType 排序方式
     */
    handleSortColumn: (sortColumn: string, sortType: string) => void;
    /**
     * 设置表格的特殊属性
     * @param property 属性配置
     */
    setTableAttribute(property: ITablePro): any;
    searchData(fields: any[]): any;
    render(): React.JSX.Element | null;
}
export {};
