export declare function addOrUpdate(arr: T[], predicate: (element: T) => boolean, found: (idx: number) => void, notFound: () => T): void; export interface ISortedArray { insert(item: T): void; delete(index: number): void; find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined; findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number; } export declare class SortedArray implements ISortedArray { data: T[]; compareFn?: (a: T, b: T) => number; constructor(compareFn?: (a: T, b: T) => number); insert(item: T): void; delete(index: number): void; find(predicate: (value: T, index: number, obj: T[]) => unknown): T | undefined; findIndex(predicate: (value: T, index: number, obj: T[]) => unknown): number; }