import _ = require('underscore'); import CommonItemList = require('./CommonItemList'); export = List; declare class List { protected items: Item[]; private ListStatic; private indexedBy; constructor(items: Item[], ListStatic?: new (items: Item[]) => ItemList); toArray(objectFactory?: (item: Item) => any): any[]; filter(cb: (item: Item) => boolean): ItemList; find(cb: (item: Item) => boolean): Item; findOneOnly(cb: (item: Item) => boolean): Item; any(cb: (item: Item) => boolean): boolean; map(cb: (item: Item) => any): List>; mapList(cb: (item: Item) => MappedItem): List; max(cb: (item: Item) => number): Item; sortBy(cb: (item: Item) => number): ItemList; getListByMax(cb: (item: Item) => number): ItemList; all(cb: (item: Item) => boolean): boolean; forEach(cb: (item: Item, i?: number) => any): List; count(): number; isEmpty(): boolean; first(): Item; last(): Item; firstList(n: number): ItemList; restList(n: number): ItemList; createEach(): Each; indexBy(propertyName: string): { [index: string]: Item; }; index(cb: (item: Item) => string | number): _.Dictionary; get(i: number): Item; chunk(batchLength: number): ItemList[]; merge(mergeList: ItemList): ItemList; add(item: Item): ItemList; remove(item: Item): ItemList; contains(item: Item): boolean; flatMap(cb: (item: Item) => any): List>; flatten(): List>; unique(): List>; groupBy(cb: (item: Item) => any): List>; }