import { ReactElement, ReactNode } from "react";
import { ColumnDef, CrudAccess, CrudOptions, RowActionMenuItem, TableOption, TableOptions } from "./types";
import { TableConfigData } from "./hooks";
export interface TableProps<T> {
    columns: ColumnDef<T>[];
    data: TableOption<T>[];
    tableName: string;
    disableCrud?: boolean;
    crudAccess?: CrudAccess;
    crudOptions?: CrudOptions<T>;
    disablePagination?: boolean;
    setTableConfig?: (values: TableConfigData<T>) => void;
    totalRecords?: number;
    renderDetailPanel?: (row: T) => ReactNode;
    rowActionsPosition?: "start" | "end";
    rowActionMenuItems?: RowActionMenuItem<T>[];
    hideOuterBorder?: boolean;
    tableOptions?: Partial<TableOptions<T>>;
    isLoading?: boolean;
    reloadFn?: () => void;
    onDoubleClickRow?: (row: T) => void;
    EmptyStateComponent?: ReactNode;
    debugRows?: boolean;
}
export declare function Table<T>({ columns, data, tableName, tableOptions, isLoading, reloadFn, crudOptions, disableCrud: disableCrudOperations, crudAccess, EmptyStateComponent, renderDetailPanel: detailPanelRender, debugRows, rowActionsPosition, disablePagination, hideOuterBorder, setTableConfig, totalRecords, rowActionMenuItems, onDoubleClickRow, }: Readonly<TableProps<T>>): ReactElement;
