import { z } from 'zod'; import Logger from '../classes/Logger'; import { tableRow, T_IO_PROPS, T_IO_STATE } from '../ioSchema'; import { MenuItem, TableColumn } from '../types'; import { TableDataFetcher } from '../utils/table'; declare type PublicProps> = Omit, 'data' | 'columns' | 'totalRecords' | 'isAsync'> & { columns?: (TableColumn | (string & keyof Row))[]; rowMenuItems?: (row: Row) => MenuItem[]; } & ({ data: Row[]; } | { getData: TableDataFetcher; }); export default function displayTable(logger: Logger): = any>(props: PublicProps) => { props: { defaultPageSize?: number | undefined; helpText?: string | undefined; isFilterable?: boolean | undefined; totalRecords?: number | undefined; isAsync?: boolean | undefined; orientation?: "vertical" | "horizontal" | undefined; isSortable?: boolean | undefined; data: { menu?: ({ theme?: "default" | "danger" | undefined; label: string; } & (({ params?: Record | undefined; disabled?: boolean | undefined; } & ({ route: string; } | { action: string; })) | { disabled?: boolean | undefined; url: string; } | { disabled: true; }))[] | undefined; filterValue?: string | undefined; data: Record; key: string; }[]; columns: { accessorKey?: string | undefined; label: string; }[]; }; onStateChange(newState: T_IO_STATE<'DISPLAY_TABLE'>): Promise<{ data: { menu?: ({ theme?: "default" | "danger" | undefined; label: string; } & (({ params?: Record | undefined; disabled?: boolean | undefined; } & ({ route: string; } | { action: string; })) | { disabled?: boolean | undefined; url: string; } | { disabled: true; }))[] | undefined; filterValue?: string | undefined; data: Record; key: string; }[]; totalRecords: number | undefined; isAsync: boolean; columns: { accessorKey?: string | undefined; label: string; }[]; defaultPageSize?: number | undefined; helpText?: string | undefined; isFilterable?: boolean | undefined; orientation?: "vertical" | "horizontal" | undefined; isSortable?: boolean | undefined; rowMenuItems?: ((row: Row) => MenuItem[]) | undefined; } | { data: { menu?: ({ theme?: "default" | "danger" | undefined; label: string; } & (({ params?: Record | undefined; disabled?: boolean | undefined; } & ({ route: string; } | { action: string; })) | { disabled?: boolean | undefined; url: string; } | { disabled: true; }))[] | undefined; filterValue?: string | undefined; data: Record; key: string; }[]; totalRecords: number | undefined; isAsync: boolean; columns: { accessorKey?: string | undefined; label: string; }[]; defaultPageSize?: number | undefined; helpText?: string | undefined; isFilterable?: boolean | undefined; orientation?: "vertical" | "horizontal" | undefined; isSortable?: boolean | undefined; rowMenuItems?: ((row: Row) => MenuItem[]) | undefined; getData: TableDataFetcher; }>; }; export {};