import React, { ReactNode } from 'react';
import { TableProps } from '@alifd/next/types/table';
import { ICommonMethods } from "../mixin/commonMethods";
import { IColumnMethods } from "../mixin/columnMethods";
import { IWebToolbarProps } from "../component/webToolbar";
import { IEditableMethods, IEditableMethodsProps } from "../mixin/editableMethods";
import { IWebNextTableActionCellProps } from "../component/webNextTableActionCell";
import { IWebNextTableCellProps } from "../component/webNextTableCell";
import { LoadingProps } from '@alifd/next/types/loading';
export interface IWebTableProps extends IWebToolbarProps, IEditableMethodsProps, Omit<IWebNextTableActionCellProps, 'index'>, Omit<TableProps, 'locale' | 'onSelect'> {
    data?: any;
    columns?: any[];
    nextTablePrefix?: string;
    isPagination?: boolean;
    actionTitle?: string;
    actionFixed?: string;
    actionWidth?: number | string;
    pagination?: any;
    primaryKey?: string;
    onFetchData?: (options: Pick<IWebTableState, "currentPage" | "pageSize" | "searchKey" | "orderColumn" | "orderType"> & {
        from: string;
    }) => void;
    onLoadData?: (...options: any[]) => void;
    onColumnsChange?: (columns: IWebTableProps['columns']) => void;
    setEmptyContent?: boolean;
    emptyContent?: (() => ReactNode) | ReactNode;
    noPadding?: boolean;
    dataSource?: any;
    device?: string;
    actionHidden?: boolean;
    theme?: string;
    width?: string | number;
    height?: string | number;
    showRowSelector?: boolean;
    onSelect?: NonNullable<TableProps['rowSelection']>['onSelect'];
    onSelectAll?: NonNullable<TableProps['rowSelection']>['onSelectAll'];
    isRowSelectorDisabled?: (rowData: any, index: number) => boolean;
    rowSelector?: string;
    onCellDataChange?: IWebNextTableCellProps['onCellDataChange'];
    clsPrefix?: string;
    tablePrefix?: string;
    className?: string;
    loadingComponent?: (props: LoadingProps) => ReactNode;
}
interface IWebTableState {
    originalColumns?: any[];
    currentColumns?: any[];
    currentPage: number;
    pageSize: number;
    searchKey: string;
    orderColumn: string;
    orderType: string;
    dataSource: any;
    totalCount: number;
    isCustomColumnDrawerShown: boolean;
}
interface WebTable extends React.Component<IWebTableProps, IWebTableState>, Omit<ICommonMethods, 'init'>, Omit<IColumnMethods, 'init'>, Omit<IEditableMethods, 'init'> {
}
declare class WebTable extends React.Component<IWebTableProps, IWebTableState> {
    static displayName: string;
    constructor(props: IWebTableProps);
    componentWillReceiveProps(nextProps: IWebTableProps): void;
    renderColumn(column: any): JSX.Element;
    renderColumns(columns: IWebTableState['currentColumns']): JSX.Element[];
    renderActionColumns(): JSX.Element;
    render(): JSX.Element;
}
export default WebTable;
