import React, { ReactNode } from 'react';
import { NumberFormat } from '@based/pretty-number';
import { DateFormat } from '@based/pretty-date';
type RenderAs = 'badge' | 'image' | 'avatar' | 'toggle' | NumberFormat | DateFormat | 'strong' | 'medium' | 'normal' | ((row: any) => ReactNode);
type TableColumn = {
    align?: 'start' | 'center' | 'end';
} & ({
    key: string;
    header: string;
    renderAs?: RenderAs;
} | {
    id: string;
    header?: string;
    renderAs: (row: any) => ReactNode;
});
export type TableProps = {
    columns?: TableColumn[];
    data: any;
    onScrollToBottom?: () => void;
    onVisibleElementsChange?: (visibleElements: number[]) => void;
    virtualized?: boolean;
    header?: true | false | 'sticky';
    border?: boolean;
    rowAction?: (row: any) => ReactNode;
    onRowClick?: (row: any) => void;
    topBar?: boolean;
    selectable?: boolean;
    onMultiSelectDelete?: () => void;
    onFilterChange?: ({ operator, field, value }: {
        operator: any;
        field: any;
        value: any;
    }) => void;
};
export declare function Table({ data, columns: columnsProp, onScrollToBottom: onScrollToBottomProp, onVisibleElementsChange: onVisibleElementsChangeProp, virtualized, header, border, rowAction, onRowClick: onRowClickProp, selectable, onMultiSelectDelete, topBar, onFilterChange, }: TableProps): React.JSX.Element;
export {};
