// Type definitions for collections v5.0.6 // Project: http://www.collectionsjs.com/ // Definitions by: Scarabe Dore // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare module 'collections/sorted-set' { namespace internal { // TODO: These methods can be similar in others collection. One's should make some // class model. abstract class AbstractSet { union(...plus: any[]): any; intersection(...plus: any[]): any; difference(...plus: any[]): any; symmetricDifference(...plus: any[]): any; remove(...plus: any[]): any; contains(...plus: any[]): any; toggle(...plus: any[]): any; addEach(...plus: any[]): any; deleteEach(...plus: any[]): any; deleteAll(...plus: any[]): any; findValue(...plus: any[]): any; iterator(...plus: any[]): any; forEach(...plus: any[]): any; map(...plus: any[]): any; filter(...plus: any[]): any; group(...plus: any[]): any; some(...plus: any[]): any; every(...plus: any[]): any; any(...plus: any[]): any; all(...plus: any[]): any; only(...plus: any[]): any; sorted(...plus: any[]): any; reversed(...plus: any[]): any; join(...plus: any[]): any; sum(...plus: any[]): any; average(...plus: any[]): any; zip(...plus: any[]): any; enumerate(...plus: any[]): any; concat(...plus: any[]): any; flatten(...plus: any[]): any; toArray(...plus: any[]): any; toObject(...plus: any[]): any; toJSON(...plus: any[]): any; equals(...plus: any[]): any; clone(...plus: any[]): any; contentCompare(...plus: any[]): any; contentEquals(...plus: any[]): any; sortedSetLog(...plus: any[]): any; addRangeChangeListener(...plus: any[]): any; removeRangeChangeListener(...plus: any[]): any; dispatchRangeChange(...plus: any[]): any; addBeforeRangeChangeListener(...plus: any[]): any; removeBeforeRangeChangeListener(...plus: any[]): any; dispatchBeforeRangeChange(...plus: any[]): any; addOwnPropertyChangeListener(...plus: any[]): any; addBeforeOwnPropertyChangeListener(...plus: any[]): any; removeOwnPropertyChangeListener(...plus: any[]): any; removeBeforeOwnPropertyChangeListener(...plus: any[]): any; dispatchOwnPropertyChange(...plus: any[]): any; dispatchBeforeOwnPropertyChange(...plus: any[]): any; makePropertyObservable(...plus: any[]): any; } class Node { reduce(cb: (result?: any, val?: any, key?: any, collection?: any) => any, basis: any, index: number, thisp: any, tree: any, depth: number): any; touch(...plus: any[]): void; checkIntegrity(...plus: any[]): number; getNext(...plus: any[]): Node | undefined; getPrevious(...plus: any[]): Node | undefined; summary(...plus: any[]): string; log(charmap: any, logNode: any, log: any, logAbove: any): any; } class Iterator { next(): {done: true, value: T | null | undefined}; } export class SortedSet extends AbstractSet { constructor( values?: T[], equals?: (a: T, b: T) => boolean, compare?: (a: T, b: T) => number, getDefault?: any ); constructClone(values?: T[]): SortedSet; add(value: T): boolean; clear(): void; ['delete'](value: T): boolean; find(value: T): Node | undefined; findGreatest(n?: Node | undefined): Node | undefined; findGreatestLessThan(value: T): Node | undefined; findGreatestLessThanOrEqual(value: T): Node | undefined; findLeast(n?: Node | undefined): Node | undefined; findLeastGreaterThan(value: T): Node | undefined; findLeastGreaterThanOrEqual(value: T): Node | undefined; max(n?: Node): T | undefined; min(n?: Node): T | undefined; one(): T | undefined; get(elt: T): T | undefined; has(elt: T): boolean; indexOf(value: T): number; pop(): T | undefined; push(...rest: T[]): void; shift(): T | undefined; unshift(...rest: T[]): void; slice(start?: number, end?: number): T[]; splice(start: Node, length: number, ...values: T[]): T[]; swap(start: number, length: number, values?: T[]): T[]; splay(value: T): void; splayIndex(index: number): boolean; reduce(callback: (result?: any, val?: any, key?: any, collection?: any) => any, basis?: any, thisp?: any): any; reduceRight( callback: (result?: any, val?: any, key?: any, collection?: any) => any, basis?: any, thisp?: any ): any; iterate(start: number, stop: number): Iterator; } } export = internal.SortedSet; }