export declare class Sorter { sort(array: D[], scheme: SortScheme): D[]; getNextSortState(state: SortState): SortState; private chainSorting; private sorting; } export declare type SortState = 'none' | 'asc' | 'desc'; export declare type SorterFn = (a: D, b: D) => number; export interface SortableArgs { id: string; sorter: SorterFn; getter: (val: D) => string; defaults: SortState; isActive: boolean; } export declare class Sortable implements SortableArgs { readonly id: string; state: SortState; readonly defaults: SortState; readonly sorter: SorterFn; readonly getter: (val: D) => string; readonly isActive: boolean; constructor({ id, sorter, getter, defaults, isActive }: { id: any; sorter: any; getter: any; defaults: any; isActive: any; }); } export interface SortScheme { toState: SortState; leader: Sortable; chain: Sortable[]; }