import { Observable } from 'rxjs';
import { IServerSearchParams } from '../asyncTypes';
import { IFilter } from '../../filters/index';
import { ISort } from '../../sorts/index';
export interface IFilterWithValue {
    filter: IFilter<any, any>;
    value: any;
}
export interface ITypeWithValue {
    type: string;
    value: any;
}
export declare const defaultThrottleLimit: number;
export declare function toRequestStream(throttled$: Observable<boolean>, filters$: Observable<IFilter<any, any>[]>, sorts$: Observable<ISort[]>): Observable<IServerSearchParams>;
export declare function throttled(filters$: Observable<IFilter<any, any>[]>, sorts$: Observable<ISort[]>): Observable<IServerSearchParams>;
export declare function unthrottled(filters$: Observable<IFilter<any, any>[]>, sorts$: Observable<ISort[]>): Observable<IServerSearchParams>;
export declare function suppressInactiveFilters(filters$: Observable<IFilter<any, any>[]>): Observable<IFilter<any, any>[]>;
export declare function toFiltersWithValues(filters$: Observable<IFilter<any, any>[]>): Observable<IFilterWithValue[]>;
export declare function toFilterChanges(filters$: Observable<IFilter<any, any>[]>): Observable<{
    [index: string]: any;
}>;
export declare function toTypesWithValues(filters$: Observable<IFilter<any, any>[]>): Observable<ITypeWithValue[]>;
export declare function combineWithSortsAndPaging(filterValues$: Observable<{
    [index: string]: any;
}>, sorts$: Observable<ISort[]>): Observable<IServerSearchParams>;
export declare function toObservableArray<TListType, TReturnType>(list: TListType[], transform: {
    (item: TListType): Observable<TReturnType>;
}): Observable<TReturnType>[];
export declare function pipe<TInputType, TReturnType>(input: TInputType, actions: {
    (input: any): any;
}[]): TReturnType;
