import { SVGIconProps } from '@patternfly/react-icons/dist/js/createIcon'; import { IAction, IActionsResolver, IFormatter, ITransform, TableProps } from '@patternfly/react-table'; import { ComponentClass, ReactNode, JSX } from 'react'; export type Field = { name: string; displayKey?: string; cellFormatters?: IFormatter[]; transforms?: ITransform[]; cellRenderer?: (row: T) => JSX.Element | string; }; export type DetailField = { name: string; enabled?: (row: T) => boolean; cellRenderer?: (row: T) => JSX.Element | string; }; export type Action = IAction & { onRowClick?: (row: T) => Promise | void; }; export type LoaderFunction = (first?: number, max?: number, search?: string) => Promise; export type SignaledLoader = { readonly signal: any; loader: LoaderFunction; }; export type DataListProps = Omit & { loader: T[] | LoaderFunction | SignaledLoader; onSelect?: (value: T[]) => void; canSelectAll?: boolean; detailColumns?: DetailField[]; isRowDisabled?: (value: T) => boolean; isPaginated?: boolean; ariaLabelKey: string; searchPlaceholderKey?: string; columns: Field[]; actions?: Action[]; actionResolver?: IActionsResolver; searchTypeComponent?: ReactNode; toolbarItem?: ReactNode; subToolbar?: ReactNode; emptyState?: ReactNode; icon?: ComponentClass; isNotCompact?: boolean; isRadio?: boolean; isSearching?: boolean; }; /** * A generic component that can be used to show the initial list most sections have. Takes care of the loading of the date and filtering. * All you have to define is how the columns are displayed. * @example * Promise} props.loader - loader function that will fetch the data to display first, max and search are only applicable when isPaginated = true * @param {Field} props.columns - definition of the columns * @param {Field} props.detailColumns - definition of the columns expandable columns * @param {Action[]} props.actions - the actions that appear on the row * @param {IActionsResolver} props.actionResolver Resolver for the given action * @param {ReactNode} props.toolbarItem - Toolbar items that appear on the top of the table {@link toolbarItem} * @param {ReactNode} props.emptyState - ReactNode show when the list is empty could be any component but best to use {@link ListEmptyState} */ export declare function KeycloakDataTable({ ariaLabelKey, searchPlaceholderKey, isPaginated, onSelect, canSelectAll, isNotCompact, isRadio, detailColumns, isRowDisabled, loader, columns, actions, actionResolver, searchTypeComponent, toolbarItem, subToolbar, emptyState, icon, isSearching, ...props }: DataListProps): import("react/jsx-runtime").JSX.Element;