import { BehaviorSubject } from "rxjs/BehaviorSubject"; import { MatPaginator } from "@angular/material"; import { DataSource } from "@angular/cdk/collections"; import { Observable } from "rxjs/Observable"; import 'rxjs/Rx'; export declare enum Operation { gt = 0, lt = 1, gte = 2, lte = 3, eq = 4, ieq = 5, neq = 6, ineq = 7, like = 8, ilike = 9 } export declare enum SortOrder { asc = 0, desc = 1 } export interface SearchContext { size?: number; page?: number; inclusive?: boolean; sortField?: string; sortOrder?: SortOrder; criteria?: FilterCriteria[]; } export interface FilterCriteria { path: string; operation: Operation; value: any; } export declare function SelectionMapper(codeProperty: string, valueProperty: string, source$: Observable): Observable; export declare function StringSelectionMapper(source$: Observable): Observable; export declare class FilterCriteriaUtils { private ctx?; constructor(ctx?: SearchContext); getContext(): SearchContext; applyFilter(path: string, operation: Operation, value: any): FilterCriteriaUtils; format(): any; } export interface CriteriaSearchService { search(criteria: any): Observable; } export interface CriteriaLoadFn { (criteria: any): Observable; } export interface CriteriaLoader { prepare(criteria: any): Observable; processResponse(response: any): any; } export declare class FunctionCriteriaLoader implements CriteriaLoader { loadFn: CriteriaLoadFn; constructor(loadFn: CriteriaLoadFn); prepare(criteria: any): Observable; processResponse(response: any): { total: any; items: any; }; } export declare class CriteriaTableDB { private loader; private paginator; dataSubject: BehaviorSubject; dataSource: CriteriaTableDS | null; items: any; lastCtx: any; pageSize: number; pageIndex: number; totalSize: number; constructor(loader: CriteriaLoader, paginator: MatPaginator); reload(ctx?: any): void; } export declare class CriteriaTableDS extends DataSource { private subject; constructor(subject: BehaviorSubject); connect(): Observable; disconnect(): void; }