import * as i0 from "@angular/core";
export declare type SortOrder = 'ascending' | 'descending';
/** Model de tri pour le SortingService */
export interface SortInfos {
    name: string;
    order?: SortOrder;
}
/** Classe de tri d'une liste plate ou hierarchique */
export declare class SortingService {
    /** Trie les éléments de la liste plate spécifiée en fonction du modèle de tri spécifié
     * @param list Liste à trier.
     * @param sortInfos Modèle de tri à appliquer.
     * @return Liste triée.
     */
    sort<T>(list: Array<T>, sortInfo: SortInfos | ReadonlyArray<SortInfos>): Array<T>;
    /** Trie les éléments de la liste hierarchique spécifiée en fonction du modèle de tri spécifié.  Peut être surchargé pour implémenter un tri asynchrone
     * @param tree Liste à trier.
     * @param sortInfos Modèle de tri à appliquer.
     * @param childrenField Champ à utiliser pour la recherche dans les enfants d'un parent.
     * @return Observable résolue par la fonction.
     */
    sortTree<T>(tree: Array<T>, sortInfo: SortInfos | ReadonlyArray<SortInfos>, childrenField?: string): Array<T>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SortingService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SortingService>;
}
