import { Pagination, PagingResponseModel } from 'blg-akaun-ts-lib'; import { Observable } from 'rxjs'; export declare const gridOptionsServerSide: { serverSideStoreType: string; rowModelType: string; defaultColDef: { filter: string; floatingFilter: boolean; floatingFilterComponentParams: { suppressFilterButton: boolean; }; minWidth: number; flex: number; sortable: boolean; resizable: boolean; wrapText: boolean; autoHeight: boolean; suppressCsvExport: boolean; }; pagination: boolean; animateRows: boolean; sideBar: string; }; export declare const gridOptionsClientSide: { rowModelType: string; defaultColDef: { filter: string; floatingFilter: boolean; floatingFilterComponentParams: { suppressFilterButton: boolean; }; minWidth: number; flex: number; sortable: boolean; resizable: boolean; wrapText: boolean; autoHeight: boolean; suppressCsvExport: boolean; }; pagination: boolean; animateRows: boolean; sideBar: string; }; /** * Decides whether the data is being filtered based on the filterModel * provided by the AG grid request and returns what contains an object * that contains a function which takes in a view model and decides if * it contains the filter search string and a boolean whether the data is * currently being filtered or not. * * @param filterModel : the filter model provided by AG grid * @returns {by: a function, isFiltering: true if not currently filtered, false otherwise} */ export declare function pageFiltering(filterModel: any): { by: (viewModel: any) => any; isFiltering: boolean; }; /** * Sorts data according to the sort model provided by AG grid and returns * this new data. * * @param sortModel : the sort model provided by AG grid * @returns the sorted data */ export declare function pageSorting(sortModel: any): (data: any) => any; /** * Set datasource on the AG grid to empty. */ export declare function serverSideClear(gridApi: any): void; /** * Pages through every record matching `criteria` and returns them as one array. * * Criteria-based endpoints apply a `limit`, so a single getByCriteria call only * ever returns one page. Flows that used to resolve an unbounded guid list * through SubQueryService (permission-set deletion, role deletion, removing * permission sets from a role) must not silently stop at the first page: a * permission set with more assignee-target links than the page size would leave * residual links behind. * * `fetchPage` receives the Pagination to use and returns the service call, e.g. * * fetchAllByCriteria( * pagination => this.someService.getByCriteria(pagination, this.apiVisa), * [{ columnName: 'perm_set_hdr_guid', operator: '=', value: guid }] * ) * * `maxPages` is a runaway guard, not a business limit: it only trips if the * endpoint ignores `offset` and keeps returning full pages. It is deliberately * high enough (200 x 500 = 100,000 records) that no real data set reaches it. */ export declare function fetchAllByCriteria(fetchPage: (pagination: Pagination) => Observable>, criteria: any[], pageSize?: number, maxPages?: number): Observable;