import { Comparer } from '../Comparer'; import { SortOptimizations } from '../SortOptimizations'; import { Observable, OperatorFunction } from 'rxjs'; import { IChangeSet } from '../IChangeSet'; import { ISortedChangeSet } from '../ISortedChangeSet'; /** * Sorts using the specified comparer. * Returns the underlying ChangeSet as as per the system conventions. * The resulting changeset also exposes a sorted key value collection of of the underlying cached data * @typeparam TObject The type of the object. * @typeparam TKey The type of the key. * @param keyComparer The key comparer. * @param comparer The comparer. * @param sortOptimisations Sort optimization flags. Specify one or more sort optimizations * @param resort OnNext of this observable causes data to resort. This is required when the value which is sorted on mutable * @param comparerChangedObservable An observable comparer used to change the comparer on which the sorted list * @param resetThreshold The number of updates before the entire list is resorted (rather than inline sort) */ export declare function sort(comparer?: Comparer, comparerChangedObservable?: Observable>, resort?: Observable, resetThreshold?: number, keyComparer?: Comparer, sortOptimisations?: SortOptimizations): OperatorFunction, ISortedChangeSet>; declare type SortExpression = Comparer & { thenByAscending(key: Key): SortExpression; thenByDescending(key: Key): SortExpression; }; export declare class SortComparer { static ascending(key: Key): SortExpression; static descending(key: Key): SortExpression; } export {};