import React from 'react';
import { TableDataItemBase, TableOnCellClick, TableOnChange, TableOnRowClick, TableRowClassNameHandler } from './table-types';
import { ScaleProps } from '../use-scale';
interface Props<TableDataItem extends TableDataItemBase> {
    data?: Array<TableDataItem>;
    initialData?: Array<TableDataItem>;
    emptyText?: string;
    hover?: boolean;
    onRow?: TableOnRowClick<TableDataItem>;
    onCell?: TableOnCellClick<TableDataItem>;
    onChange?: TableOnChange<TableDataItem>;
    onFilters?: (filters: any) => void;
    onSelected?: (selected: any[]) => void;
    onPageChange?: (page: number, start: number, end: number) => void;
    className?: string;
    rowDraggable?: boolean;
    readOnly?: boolean;
    showFilters?: boolean;
    stickyHeader?: boolean;
    dataLength?: number;
    viewLength?: number;
    rowClassName?: TableRowClassNameHandler<TableDataItem>;
}
type NativeAttrs = Omit<React.TableHTMLAttributes<any>, keyof Props<any>>;
export type TableProps<TableDataItem extends TableDataItemBase> = Props<TableDataItem> & NativeAttrs;
declare function TableComponent<TableDataItem extends TableDataItemBase>(tableProps: React.PropsWithChildren<TableProps<TableDataItem>>): React.JSX.Element;
declare namespace TableComponent {
    var displayName: string;
    var Column: {
        <TableDataItem extends TableDataItemBase>(columnProps: React.PropsWithChildren<import("./table-column").TableColumnProps<TableDataItem>>): null;
        displayName: string;
    };
}
declare const _default: typeof TableComponent & ScaleProps;
export default _default;
