import { ICollection, IEachFunction } from './ICollection'; import { IPredicate, IPredicateFunction } from '../predicate/IPredicate'; import { IMapper } from '../mapper/IMapper'; import { IComparator } from '../comparator/IComparator'; export declare const INITIAL_CAPACITY: number; export declare const CAPACITY_GROW_FACTOR: number; export declare abstract class AbstractCollection implements ICollection { private currentCapacity; /** * Lodash compatibility * @override */ length: number; /** * Lodash compatibility * @override */ [index: number]: TItem; /** * ES6 iterators compatibility * @override */ [Symbol.iterator]: () => Iterator; /** * @override */ iterator(): () => Iterator; /** * @override */ insert(position: number, item: TItem): ICollection; /** * @override */ addArray(items: Array): ICollection; protected checkAndGrowUp(): void; abstract getIteratorInstance(): Iterator; abstract addAll(items: ICollection): ICollection; abstract get(index: number): TItem; abstract add(item: TItem): ICollection; abstract getSize(): number; abstract remove(item: TItem): boolean; abstract removeAll(): ICollection; abstract sort(comparator: IComparator): ICollection; /** * Compatible with an array */ abstract filter(predicate: IPredicate | IPredicateFunction): ICollection; abstract iterate(callback: IEachFunction, predicate?: IPredicate): any; abstract map(mapper: IMapper): Array; abstract toArray(): Array; /** * Compatible with an array */ abstract find(predicate: IPredicate | IPredicateFunction): TItem; /** * Compatible with an array */ abstract forEach(callback: IEachFunction): any; abstract isEmpty(): boolean; } export declare abstract class Collection extends AbstractCollection { constructor(); /** * @override */ iterate(callback: IEachFunction, predicate?: IPredicate | IPredicateFunction): void; /** * Compatible with an array */ forEach(callback: IEachFunction): void; /** * @override */ addAll(items: ICollection): ICollection; /** * Compatible with an array * @override */ filter(predicate: IPredicate | IPredicateFunction): ICollection; /** * @override */ map(mapper: IMapper): Array; /** * @override */ toArray(): Array; /** * @override */ addArray(items: Array): ICollection; /** * Compatible with an array * @override */ find(predicate: IPredicate | IPredicateFunction): TItem; /** * @override */ isEmpty(): boolean; /** * @override */ readonly length: number; protected newInstance(): ICollection; private isSuitable(value, predicate); }