export interface TableSelection { readonly selected: T[]; hasValue(): boolean; isSelected(row: T): boolean; select(row: T): void; deselect(row: T): void; toggle(row: T): void; clear(): void; } export interface TableColumnDefinition { coin?: string; value: string; pipe?: any; format?: string; align?: string; width?: string; minWidth?: string | number; keyColor?: string; } export type TableColumnSource = Record; export type TableSortDirection = 'asc' | 'desc' | ''; export interface TableSortState { active: string; direction: TableSortDirection; } export interface TableSearchPayload { text: string; columns: string[]; sort: TableSortState; } export declare function areAllRowsSelected(selection: TableSelection, rows: T[]): boolean; export declare function getSelectionUniverseRows(selectAllPages: boolean, paginatorFront: boolean, frontFilteredRows: T[], dataSource: T[]): T[]; export declare function toggleRowsSelection(selection: TableSelection, rows: T[]): T[]; export declare function toggleTableRow(selection: TableSelection, row: T): T[]; export declare function clearTableSelection(selection: TableSelection): T[]; export declare function toggleAllTableRows(selection: TableSelection, rows: T[]): T[] | undefined; export declare function toggleAllTableRowsAndEmit(selection: TableSelection, rows: T[], emit: (selectedRows: T[]) => void): void; export declare function toggleTableRowAndEmit(selection: TableSelection, row: T, emit: (selectedRows: T[]) => void): void; export declare function clearTableSelectionAndEmit(selection: TableSelection, emit: (selectedRows: T[]) => void): void; export declare function getCheckboxLabel(selection: TableSelection, row: T | undefined, allRowsSelected: boolean): string; export declare function selectRowsInRange(selection: TableSelection, rows: T[], startIndex: number, endIndex: number): T[]; export declare function synchronizeSelection(selection: TableSelection, rows: T[], preserveOtherPages: boolean): boolean; export declare function synchronizeSelectionAndEmit(selection: TableSelection, rows: T[], preserveOtherPages: boolean, emit: (selectedRows: T[]) => void): void; export interface TableSelectionControllerConfig { getSelection: () => TableSelection; getSelectionUniverseRows: () => any[]; getRangeRows: () => any[]; isActionCellClick: (event?: MouseEvent) => boolean; multiSelectEnabled: () => boolean; handleMultiSelection: (row: any, event?: MouseEvent) => void; handleSingleSelection: (row: any) => void; getColumnSource: () => TableColumnSource; getDataSource: () => any[]; preserveOtherPages: () => boolean; emitSelection: (rows: any[]) => void; emitSelectedItem: (row: any | null) => void; } export declare class TableSelectionController { private readonly config; constructor(config: TableSelectionControllerConfig); isAllSelected(): boolean; toggleAllRows(): void; toggleRow(row: any): void; selectRange(startIndex: number, endIndex: number): void; resetMultipleSelection(): void; isSelected(row: any, event?: MouseEvent): void; checkboxLabel(row?: any): string; getCellClasses(element: any, column: any): string; syncSelectionWithData(): void; } export declare function getSearchableColumnKeys(columns: TableColumnSource): string[]; export declare function filterTableRows(rows: any[], query: string, keys: string[]): any[]; export declare function filterFrontTableRows(paginatorFront: boolean, rows: any[], query: string, keys: string[]): any[]; export declare function getSelectableTableColumns(columns: TableColumnSource): TableColumnSource; export declare function getTableCellClasses(element: any, column: any, columnSource: TableColumnSource): string; export declare function resolveSingleSelection(selectable: boolean, selectedItem: T | null | undefined, row: T): { selectedItem: T | null; selectedRow: T | null; }; export declare function handleTableRowSelection(row: T, event: MouseEvent | undefined, actionCellClicked: boolean, multiSelectEnabled: boolean, handleMultiSelection: () => void, handleSingleSelection: () => void): void; export declare function buildTableSearchPayload(text: string, columns: string[], sort: TableSortState): TableSearchPayload; export declare function normalizeTableKeys(findItemKeys: string | string[]): string[]; export declare function paginateTableRows(dataPage: any, rows: any[]): any[]; export declare function routeTableMutation(item: any, findItemKeys: string | string[], paginatorFront: boolean, allRows: any[], frontMutation: (item: any, keys: string[]) => void, datasourceMutation: (item: any, keys: string[]) => void): void; export declare function mutateTableRows(rows: any[], item: any, keys: string[], mutation: (rows: any[], item: any, keys: string[]) => boolean, onMutation: () => void): void; export interface TableMutationControllerConfig { getFindItemKeys: () => string | string[]; isFrontPaginated: () => boolean; getAllRows: () => any[]; getDataSource: () => any[]; getCurrentPage: () => number; getPageSize: () => number; getFrontFilteredRows: () => any[]; recomputeFrontFilteredRows: () => void; adjustCurrentPageAfterDelete: () => void; paginatorFrontFn: (dataPage: any, rows: any[]) => any; refreshDatasource: () => void; } export declare class TableMutationController { private readonly config; constructor(config: TableMutationControllerConfig); handleDelete(item: any): void; handleUpdate(item: any): void; private routeMutation; private mutateFrontRows; } export declare function buildTableColumnSource(changeHeader: boolean, allColumns: TableColumnSource, columnSource: TableColumnSource, visibleColumns: TableColumnSource, actionsColumn: TableColumnSource, transformAction?: (column: TableColumnDefinition) => TableColumnDefinition): TableColumnSource; export declare function findMatchingRowIndex(rows: any[], item: any, keys: string[]): number; export declare function deleteMatchingRow(rows: any[], item: any, keys: string[]): boolean; export declare function updateMatchingRow(rows: any[], item: any, keys: string[]): boolean;