import type { MatSort } from "@angular/material/sort"; import { MatTableDataSource } from "@angular/material/table"; /** * Extends MatDataSource with custom filter function */ export declare type CustomFilterPredicate = (data: T, filter: string, defaultFilterPredicate: ((data: T, filter: string) => boolean)) => boolean; /** * Extends MatDataSource with data sort function */ export declare type CustomSortData = (data: T[], sort: MatSort, defaultSortData: (data: T[], sort: MatSort) => T[]) => T[]; /** * Extends MatTableDataSource with custom filter function */ export declare class CustomMatTableDataSource extends MatTableDataSource { constructor(initialData?: T[], options?: { customSortData?: CustomSortData; customFilterPredicate?: CustomFilterPredicate; }); /** * Forces data source to refresh {@link filteredData} field based on {@link customFilterPredicate} */ filterData(): void; /** * Sets custom data sort function */ set customSortData(sortData: CustomSortData); /** * Sets custom filter predicate */ set customFilterPredicate(filterPredicate: CustomFilterPredicate); }