import { ExtraParameters } from "../models/extraParameters"; import { Filter, FilterItem } from "../models/index"; export declare abstract class FilterService { /** * Given a filter return the constructed filter * * @param filter */ abstract getFilterValue(filter: Filter, extraParams?: ExtraParameters): T; /** * Given a filter return the constructed filter * * @param filter */ toValue(filter: Filter, extraParams?: ExtraParameters): T; /** * Given an url, or a param string this method will return a Filter * * @param url entire url, or just the route part. */ abstract getFilter(url: T | string): Filter; /** * Given an url, or a param string this method will return a Filter * * @param url entire url, or just the route part. */ parse(url: T | string): Filter; /** * Update an existing filter with partial filterItems * use this if you add custom filters * * @param partialFilter */ UpdateFilterWithPartial(partialFilter: FilterItem[], originalFilter: Filter): Filter; /** * Creates a part of the filterstring based on pageIndex and pagesize. * In the process it replaces pageIndex (0-based) with page (1-based) * * @param {number | undefined} pageIndex index (0 based) of the page you want to get * @param {number | undefined} pageSize size of the page you want to get * @return {string} filter segment for page and pagesize */ getPageAndPageSizeFilter(pageIndex?: number, pageSize?: number): string; /** * Return a url param fragment * e.g param=value * * @param param * @param value */ getUrlSegment(param: string, value: string | number | null): string; /** * Return a url fragment with extra parameters. * e.g param=value¶m2=2 * * @param param * @param value */ getExtraParameters(extraParameters: ExtraParameters): string; }