import './Table.css'; import React from 'react'; import { HorizontalAlign, VerticalAlign } from './Cell/TableCell'; import { Filters, onSortBy, SelectedFilters } from './filtering'; import { Position } from './helpers'; export declare const sizes: readonly ["s", "m", "l"]; declare type Size = typeof sizes[number]; export declare const zebraStriped: readonly ["odd", "even"]; declare type ZebraStriped = typeof zebraStriped[number]; export declare type LazyLoad = { maxVisibleRows?: number; scrollableEl?: HTMLDivElement | Window; } | undefined; declare type ActiveRow = { id: string | undefined; onChange: ({ id, e }: { id: string | undefined; e?: React.SyntheticEvent; }) => void; }; declare type onRowHover = ({ id, e }: { id: string | undefined; e: React.MouseEvent; }) => void; export declare type TableRow = { [key: string]: React.ReactNode; id: string; }; export declare type TableFilters = Filters; export declare type RowField = Exclude; export declare type ColumnWidth = number | undefined; export declare type TableColumn = { title: React.ReactNode; accessor: RowField; align?: HorizontalAlign; withoutPadding?: boolean; width?: ColumnWidth; mergeCells?: boolean; } & ({ sortable?: false; } | { sortable: true; sortByField?: RowField; }) & { columns?: Array>; position?: Position; }; export declare type ColumnMetaData = { filterable: boolean; isSortingActive: boolean; isFilterActive: boolean; isResized: boolean; isSticky: boolean; showResizer: boolean; columnWidth: number; columnLeftOffset: number; }; export declare type Props = { columns: Array>; rows: T[]; filters?: Filters; onSortBy?: onSortBy; size?: Size; stickyHeader?: boolean; stickyColumns?: number; isResizable?: boolean; activeRow?: ActiveRow; verticalAlign?: VerticalAlign; zebraStriped?: ZebraStriped; borderBetweenRows?: boolean; borderBetweenColumns?: boolean; emptyRowsPlaceholder?: React.ReactNode; className?: string; onRowHover?: onRowHover; lazyLoad?: LazyLoad; onFiltersUpdated?: (filters: SelectedFilters) => void; }; export declare type SortingState = { by: RowField; order: 'asc' | 'desc'; } | null; export declare const Table: ({ columns, rows, size, filters, isResizable, stickyHeader, stickyColumns, activeRow, verticalAlign, zebraStriped, borderBetweenRows, borderBetweenColumns, emptyRowsPlaceholder, className, onRowHover, lazyLoad, onSortBy, onFiltersUpdated, }: Props) => React.ReactElement; export {};