import { DataSource } from '@angular/cdk/collections'; import { MatPaginator } from '@angular/material/paginator'; import { BehaviorSubject, Subscription } from 'rxjs'; import { MdtMultiSort } from './multi-sort.directive'; import { TableFilter } from './table-filter'; export declare class MdtTableDataSource extends DataSource { private readonly _data; /** Stream emitting render data to the table (depends on ordered data changes). */ private readonly _renderData; /** Stream that emits when a new filter string is set on the data source. */ private readonly _filter; private readonly _filters; /** Used to react to internal changes of the paginator that are made by the data source itself. */ private readonly _internalPageChanges; _renderChangesSubscription: Subscription | null; filteredData: T[]; constructor(initialData?: T[]); /** Array of data that should be rendered by the table, where each object represents one row. */ get data(): T[]; set data(data: T[]); get filter(): string; set filter(filter: string); get filters(): TableFilter[]; set filters(filters: TableFilter[]); get sort(): MdtMultiSort | null; set sort(sort: MdtMultiSort | null); private _multiSort; get paginator(): MatPaginator | null; set paginator(paginator: MatPaginator | null); private _paginator; sortingDataAccessor: (data: T, sortHeaderId: string) => string | number; connect(): BehaviorSubject; disconnect(): void; _updateChangeSubscription(): void; _filterData(data: T[]): T[]; filterPredicate: (data: T, filter: string) => boolean; _pageData(data: T[]): T[]; _orderData(data: T[]): T[]; sortData: ((data: T[], sort: MdtMultiSort) => T[]); compareValues(valueA: string | number, valueB: string | number, direction: string): number; _updatePaginator(filteredDataLength: number): void; }