import { default as React, ReactNode } from 'react';
interface Column {
    key: string;
    label: string;
    sortable?: boolean;
    icon?: ReactNode;
    width?: string | number;
    align?: "left" | "center" | "right";
    headerClassName?: string;
    cellClassName?: string;
    render?: (value: any, row: Record<string, any>) => ReactNode;
}
interface TableProps {
    columns: Column[];
    data: Record<string, any>[];
    className?: string;
    pagination?: boolean;
    rowsPerPage?: number;
    colors?: {
        headerBg?: string;
        headerText?: string;
        rowBg?: string;
        rowText?: string;
        borderColor?: string;
        hoverBg?: string;
        paginationBg?: string;
        paginationText?: string;
        evenRowBg?: string;
        selectedRowBg?: string;
    };
    borderRadius?: {
        table?: string;
        header?: string;
        pagination?: string;
    };
    sortable?: boolean;
    defaultSort?: {
        column: string;
        direction: "asc" | "desc";
    };
    bodyAlign?: "left" | "center" | "right";
    headerAlign?: "left" | "center" | "right";
    rowSelection?: {
        enabled?: boolean;
        onSelect?: (selectedRows: Record<string, any>[]) => void;
        selectionColumnWidth?: string;
        selectionColumnHeader?: ReactNode;
    };
    emptyState?: ReactNode;
    onRowClick?: (row: Record<string, any>, index: number) => void;
    rowClassName?: (row: Record<string, any>, index: number) => string;
    cellPadding?: string;
    headerCellPadding?: string;
    stickyHeader?: boolean;
    maxHeight?: string;
    scrollShadow?: boolean;
}
export declare const Table: React.FC<TableProps>;
export {};
