export type PaginationProp = { setPage?: (page: number) => void; setPreviousPage?: () => void; setNextPage?: () => void; hasNextPage?: boolean; hasPreviousPage?: boolean; setPerPage?: (amount: number) => void; perPageOptions?: number[]; }; export type SortersProp = Array<{ label: string; value: any; }>; export interface DataListProps { children?: ((props: any) => React.ReactNode) | null; title?: React.ReactNode; data?: TData | null; refresh?: (() => void) | null; loading?: boolean; loader?: React.ReactNode; noData?: React.ReactNode; pagination?: PaginationProp; setSorters?: ((sorter: any) => void) | null; sorters?: SortersProp | null; actions?: React.ReactNode; filters?: React.ReactNode; multiSelectActions?: React.ReactNode; multiSelectAll?: (value: boolean, data: Record[] | null) => void; isAllMultiSelected?: (data: Record[] | null) => boolean; isNoneMultiSelected?: (data: Record[] | null) => boolean; showOptions?: { refresh?: boolean; pagination?: boolean; filters?: boolean; sorters?: boolean; [key: string]: any; }; search?: React.ReactElement; modalOverlay?: React.ReactElement; modalOverlayAction?: React.ReactElement; subHeader?: React.ReactElement; meta?: Record | null; setPage?: ((page: string) => void) | null; setPerPage?: ((page: string) => void) | null; perPageOptions?: number[]; }