UNPKG

mobx

Version:

Simple, scalable state management.

43 lines (42 loc) 1.42 kB
import { IEnhancer, IInterceptor, Lambda } from "../internal"; export interface IObservableArray<T = any> extends Array<T> { spliceWithArray(index: number, deleteCount?: number, newItems?: T[]): T[]; observe(listener: (changeData: IArrayChange<T> | IArraySplice<T>) => void, fireImmediately?: boolean): Lambda; intercept(handler: IInterceptor<IArrayWillChange<T> | IArrayWillSplice<T>>): Lambda; clear(): T[]; replace(newItems: T[]): T[]; remove(value: T): boolean; toJS(): T[]; toJSON(): T[]; } export interface IArrayChange<T = any> { type: "update"; object: IObservableArray<T>; index: number; newValue: T; oldValue: T; } export interface IArraySplice<T = any> { type: "splice"; object: IObservableArray<T>; index: number; added: T[]; addedCount: number; removed: T[]; removedCount: number; } export interface IArrayWillChange<T = any> { type: "update"; object: IObservableArray<T>; index: number; newValue: T; } export interface IArrayWillSplice<T = any> { type: "splice"; object: IObservableArray<T>; index: number; added: T[]; removedCount: number; } export declare function createObservableArray<T>(initialValues: any[] | undefined, enhancer: IEnhancer<T>, name?: string, owned?: boolean): IObservableArray<T>; export declare function isObservableArray(thing: any): thing is IObservableArray<any>;