import { BasicType } from '../index'; import { RSDList } from '../types'; import { Observable } from './Observable'; declare type InputItem = BasicType | object | any[]; declare type Item = Observable | BasicType; /** ViewModelList is only for internal use of the framework */ export declare class ViewModelList extends Observable { [index: number]: Item; private _itemStateDescriber?; private readonly lastIndex; readonly length: number; private items; constructor(items: Item[], stateDescriber?: RSDList); push(item: InputItem): number; pop(): Item | undefined; unshift(item: InputItem): number; shift(): Item | undefined; splice(index: number, length?: number, ...newItems: InputItem[]): Item[]; slice(start?: number, end?: number): Item[]; forEach(fn: (item: Item, index: number) => false | void): void; map(fn: (item: Item, index: number) => T): T[]; filter(fn: (item: Item) => boolean): Item[]; some(fn: (item: Item) => boolean): boolean; every(fn: (item: Item) => boolean): boolean; sort(fn: (a: Item, b: Item) => number): this; reverse(): Item[]; join(separator?: string): string; concat(...newLists: Item[][]): Item[]; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; indexOf(item: InputItem): number; private _createModificationTree; private _transformItems; private _handleChange; private defineIndexProperty; private _setItemByIndex; private _getItemByIndex; } export {};