import React from "react";
export interface DataTableColumn<T> {
    align?: "left" | "right" | "center";
    width?: string;
    header?: string | React.ReactNode;
    footer?: string | React.ReactNode;
    value?: string | number | ((row: T) => string | React.ReactNode);
    tooltip?: (row: T) => string | React.ReactNode;
    type?: "text" | "numeric" | "currency" | "date";
    /**
     * Acciones para cada fila. Retorna un array de ReactNode que se mostrarán en un DropdownMenu.
     */
    actions?: (row: T) => Array<React.ReactNode>;
    /**
     * Acciones para el header de la columna. Retorna un array de ReactNode que se mostrarán en un DropdownMenu.
     */
    headerActions?: () => Array<React.ReactNode>;
}
export interface DataTableProps<T> {
    columns: DataTableColumn<T>[];
    rows: T[];
    className?: string;
    maxRows?: number;
    locale?: string;
    isLoading?: boolean;
    loadingRows?: number;
    /**
     * Función opcional para aplicar clases CSS a una fila específica basada en sus datos.
     */
    rowClassName?: (row: T) => string;
    headerClassName?: string;
    footerClassName?: string;
    headerCellClassName?: string;
    footerCellClassName?: string;
    cellClassName?: string | ((row: T, column: DataTableColumn<T>) => string);
    compact?: boolean;
}
export declare const DataTable: <T>({ columns, rows, className, maxRows, locale, isLoading, loadingRows, rowClassName, headerClassName, footerClassName, headerCellClassName, footerCellClassName, cellClassName, compact, }: DataTableProps<T>) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=DataTable.d.ts.map