import { DataSource } from '@angular/cdk/table'; import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { CollectionViewer } from '@angular/cdk/collections'; import { PghLoader } from '@tapsellorg/angular-material-library/src/lib/loader'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { PghTableDataSourceLoadResponse, PghTableDataSourceParams } from './models'; import { PghFilterChipsComponent } from '@tapsellorg/angular-material-library/src/lib/filter-chips'; import { PghRefreshButtonComponent } from '@tapsellorg/angular-material-library/src/lib/refresh-button'; import { PghDateRangePickerComponent } from '@tapsellorg/angular-material-library/src/lib/date-range-picker'; export declare abstract class PghTableDatasource extends DataSource { protected config: { idField: keyof T; }; readonly DEFAULT_PAGE_SIZE = 20; protected _destroyed$: Subject; protected dataSubject: BehaviorSubject; private triggerLoadDataSubject; private paginator?; private sorter?; private filterChipsComponent?; private dateRangePickerComponent?; private filterChipsFilterData?; private dateRangePickerSelectedRange?; private refreshButtonComponent?; dataLength: number; loader: PghLoader; protected constructor(config: { idField: keyof T; }); connect(_collectionViewer: CollectionViewer): Observable; disconnect(_collectionViewer: CollectionViewer): void; abstract loadData(data: PghTableDataSourceParams): Observable>; setPaginator(paginator: MatPaginator): void; setSorter(sorter: MatSort): void; setFilter(filterChipsComponent: PghFilterChipsComponent): void; setDateFilter(dateRangePickerComponent: PghDateRangePickerComponent): void; setRefresher(refreshButtonComponent: PghRefreshButtonComponent): void; trackBy: (index: number, item: T) => T[keyof T]; triggerLoadData(): void; }