import React from "react"; import { Icolumn, Irow, renderFunction, IPaginated, IPerPage, stringRenderFunc } from "./table-types"; export interface ItableRow { row: Irow; columns: Icolumn[]; /** * If users want to enable using bulk selects, then they have to pass in an array of strings of actions. * If that array of string is empty, then this will be false */ use_bulk_action: boolean; index: number; render?: renderFunction; checked_set: Set; active_page_number: number; /** * Whenever a single checkbox in a table row is clicked, this is invoked. Since I'm using a cotrolled input, * I therefore trigger an event up the tree to notify about this click. This is then recorded on the * `Set` that holds data of clicked rows for this page. */ setCheck: (page_number: number, index: number, ischecked: boolean) => void; is_striped: boolean; is_bordered: boolean; is_hovered: boolean; row_style: string; data_style: string; } export declare function TableRow(props: ItableRow): JSX.Element; export declare function TableData(props: { col: Icolumn; row: Irow; render?: renderFunction; style: string; }): JSX.Element; interface Ithead { columns: Icolumn[]; use_bulk_action: boolean; page_data: IPerPage; active_page_number: number; mass_checking: (page_number: number, action: "check-all" | "uncheck-all") => void; row_style: string; data_style: string; } export declare function TableHead(props: Ithead): JSX.Element; export declare function TableCaption(props: { text: string; style: string; }): JSX.Element; export declare function TableSearch(props: { onSearch: (text: string) => void; style: string; }): JSX.Element; interface IexportProps { export_text: string; paginated_data: IPaginated; cols: Icolumn[]; file_name: string; processFunc?: stringRenderFunc; bg_color?: string; text_color: string; style: string; } export declare function TableExport(props: IexportProps): JSX.Element; export declare function TableTop(props: { children?: React.ReactNode; style: string; }): JSX.Element; export interface ItableActProps { action_options: string[]; eventSelected: (option: string) => void; bg_color: string; text_color?: string; dropdown_style: string; button_style: string; button_text: string; } export declare function TableBulkAction(props: ItableActProps): JSX.Element; interface Ifooter { page_number_list: number[]; paginated_map: IPaginated; active_page: number; total_pages: number; onPageChange: (page_number: number) => void; bg_color: string; main_style: string; statistics_main_style: string; statistics_number_style: string; number_box_Style: string; } export declare function Footer(props: Ifooter): JSX.Element | null; export interface IPageNumberGroup { page_number_list: number[]; active_page: number; pageClick: (page: number) => void; bg_color: string; style: string; } export interface IBoxNumber { page_number: number; is_active_page: boolean; pageClick: (page: number) => void; bg_color: string; style: string; } export {};