///
import { FilterColumn, GenericTableRow, SortDirection } from "../table-typings";
/**
* sum the total of columns or cols in a row
* @param colsLength the length of the columns
* @param useSelection add a column for selection checkboxes
* @param useShowActionColumn add another column for action columns
* @param useGroupBy add another columns for groupby
*/
export declare function sumCols(colsLength: number, useSelection?: boolean, useShowActionColumn?: boolean, useGroupBy?: boolean): number;
/**
* sort array of tabke rows
* @param items table rows array
* @param columnName the target column name
* @param sortDirection the sort direction
* @return Array of tableRow
*/
export declare function sortArray(items: Array, columnName: keyof T, sortDirection: SortDirection): Array;
/**
*
* @param data table data
* @param filterColumns filter columns
*/
export declare function filterArrayByColumns(data: Array, filterColumns: Array>): Array;
/**
* search text in array of table row
* @param data the array of table rows
* @param keyword The keyword to search in the array
* @param searchFields the target field to search
*/
export declare function searchTextByColumns(data: Array, keyword: string, searchFields: Array): Array;
/**
* paginate data
* @param data table data
* @param offset page size
* @param currentPage current page index
*/
export declare function paginate(data: Array, offset: number, currentPage: number): T[];
export interface RowSelectOutput {
data: Array>;
isAllSelected: boolean;
isIndeterminate: boolean;
}
/**
* on row select
* @param event input event
* @param data rows of data
* @param rowUniqueAccessor row unique accessor
* @param rowId row id value
*/
export declare function onRowSelect(event: React.ChangeEvent, data: Array>, rowUniqueAccessor: keyof GenericTableRow, rowId: string): RowSelectOutput;