UNPKG

@itrocks/sorted-array

Version:

Array subclasses that remain continuously sorted on insert() or push() calls, featuring optimized includes() and indexOf()

38 lines (37 loc) 1.28 kB
declare abstract class ASortedArray<T> extends Array<T> { distinct: boolean; constructor(...items: T[]); abstract insert(item: T): number | undefined; abstract isSorted(): boolean; push(...items: T[]): number; } export declare class SortedArray<T> extends ASortedArray<T> { #private; includes(searchElement: T): boolean; indexOf(searchElement: T): number; insert(item: T): number | undefined; isSorted(): boolean; } export declare class SortedArrayBy<T extends { [index: number | string]: any; }> extends ASortedArray<T> { #private; compareBy: number | string; constructor(compareBy: number | string, ...items: T[]); includes(searchElement: T): boolean; indexOf(searchElement: any): number; insert(item: any): number | undefined; isSorted(): boolean; sort(compareFn: (a: T, b: T) => number): this; } export declare class SortedArrayCompareFn<T> extends ASortedArray<T> { #private; compareFn: (a: T, b: T) => number; constructor(compareFn: (a: T, b: T) => number, ...items: T[]); includes(searchElement: T): boolean; indexOf(searchElement: T): number; insert(insert: T): number | undefined; isSorted(): boolean; sort(compareFn: (a: T, b: T) => number): this; } export {};