import React from 'react'; declare const ALIGN_TO_JUSTIFY: { left: string; center: string; right: string; }; export declare type SortDirection = 'asc' | 'desc' | 'none'; export declare type SortRule = { column: string | null; direction: SortDirection; }; export declare type ListViewProps = { data: T[]; sort?: SortRule[]; onClickHeader?: (column: C, sortTemplate: (item: T) => SortableValue) => void; onClickRow?: (item: T) => void; keyTemplate?: (item: T) => C; showHeaders?: boolean; fixedWidth?: boolean; padOuterColumns?: boolean; scrollX?: boolean; rowHeight?: React.CSSProperties['minHeight']; headerHeight?: React.CSSProperties['minHeight']; fontSize?: React.CSSProperties['fontSize']; headerFontSize?: React.CSSProperties['fontSize']; children: JSX.Element | JSX.Element[]; }; /** * `T` is the data type of each Row, * `C` is the column id type (probably a union of string literals) */ export default function ListView(props: ListViewProps): JSX.Element; declare type ListViewColumnProps = { id: string; title?: React.ReactNode; template?: (item: T) => React.ReactNode; valueTemplate?: (item: T) => SortableValue; onClick?: (item: T) => void; disabled?: (item: T) => boolean; isRowHeader?: boolean; width?: React.CSSProperties['width']; minWidth?: React.CSSProperties['minWidth']; align?: keyof typeof ALIGN_TO_JUSTIFY; }; /** * `T` is the data type of each Row, */ export declare function ListViewColumn(props: ListViewColumnProps): JSX.Element; export declare const ListViewColumnSpacer: React.FunctionComponent<{ id?: string; }>; export declare const ListViewClickableLink: React.FunctionComponent<{ onClick?: (evt: React.MouseEvent) => void; }>; export declare type SortableValue = number | string | boolean | null | undefined; export declare function getDefaultSortFunction(sortTemplate: (item: T) => SortableValue, sortDirection: SortDirection, nullsLast?: boolean): (a: T, b: T) => number; export declare function getNextSortDirection(sortDirection: SortDirection, reverse?: boolean): any; export {};