export declare type ArrayChangeType = "add" | "del"; export declare class ObservableArray extends Array { private _observers; constructor(...items: T[]); static from(items: T[]): ObservableArray; static observe(items: T[]): ObservableArray; register(observer: (eventType: ArrayChangeType, items: T[]) => void): void; unobserve(): void; protected raiseEvents(eventType: ArrayChangeType, items: T[]): void; push(...items: T[]): number; pop(): T; shift(): T; unshift(...items: T[]): number; splice(start: number, deleteCount?: number, ...items: T[]): T[]; length: number; }