import { ReactNode } from "react";
import { IBEPaginatedDataState, IFEPaginatedDataState, PaginatedData } from "@adminator/protozoa";
import { UseQueryResult } from "react-query";
import { DEFAULT_TABLE_PARAMS } from "./constants";
import { IDropDownMenuItem } from "../DropdownMenu";
import { TableFilterType } from "./filters/types";
export { DEFAULT_TABLE_PARAMS };
export { FilterOperators, IColumnFilterBag } from "./filters/types";
export interface ITableColumn {
    Header: string;
    accessor?: string;
    disableSortBy?: boolean;
    filter?: TableFilterType;
    Cell?: (cellProps: {
        value: unknown;
        row: {
            original: Record<string, unknown>;
        };
    }) => ReactNode;
}
export interface IProps {
    columns: ITableColumn[];
    title: string;
    menuItems: IDropDownMenuItem[];
    tableData: Pick<UseQueryResult<PaginatedData<Record<string, unknown>>, unknown>, "data" | "isLoading" | "error" | "isPreviousData">;
    paginatedDataState: IBEPaginatedDataState | IFEPaginatedDataState<any>;
    setPaginatedDataState: (params: IBEPaginatedDataState | IFEPaginatedDataState<any>) => void;
}
export declare function Table({ paginatedDataState, tableData, setPaginatedDataState, title, columns, menuItems, }: IProps): JSX.Element;
