import * as React from "react";
import { IColDef, PropType } from "./IColDef";
import { TableProps } from "./Props";
interface IState {
    filter: any;
    showSubComponent: object;
}
export declare class TableMui<T extends object, F extends object> extends React.Component<TableProps<T, F>, IState> {
    state: {
        filter: F;
        showSubComponent: {};
    };
    get hasFooter(): boolean;
    get isFilterable(): boolean;
    get filter(): F;
    render(): string | number | boolean | React.ReactFragment | JSX.Element | null | undefined;
    renderRoot: (children: React.ReactNode) => JSX.Element;
    renderData(colDef: IColDef<T>[], data: any[]): JSX.Element;
    getSelectedRowProps(data: any): false | object;
    onClickCalls(data: any): void;
    renderRow(colDef: IColDef<T>[], data: any, key: number): JSX.Element[];
    renderCell(colDef: IColDef<T>, data: any, idx: number, props?: object): JSX.Element;
    renderHeader(colDef: IColDef<T>[]): JSX.Element;
    renderHeaderCell(colDef: IColDef<T>, idx: number, props?: object, totalWidth?: number): JSX.Element;
    renderSortLabel(colDef: IColDef<T>, desc: boolean): JSX.Element;
    renderExpansionIndicator(expanded: boolean): JSX.Element;
    renderFilter(colDef: IColDef<T>): string | number | boolean | React.ReactFragment | JSX.Element | null | undefined;
    renderFooter(colDef: IColDef<T>[], data: any[]): JSX.Element;
    renderFooterCell(colDef: IColDef<T>, data: T[], idx: number): JSX.Element;
    generateColDef(_: any[]): IColDef<T>[];
    handleChangeSort: (orderBy: PropType<T>) => void;
    handleFilterChange: (orderBy: PropType<T>, value: any) => void;
    handleExpansionClick: (e: React.MouseEvent, key: number) => void;
    private toggleSubmenu;
    private alignToCss;
}
export {};
