export type ObservableArrayView = T[] & { push(...items: T[]): number; pop(): T | undefined; }; interface ObservableArrayOptions { initialData?: Iterable; onChanged?: (data: readonly T[]) => void; } export declare class ObservableArray { private target; private readonly proxy; private onChanged?; constructor(options?: ObservableArrayOptions); private notifyChanged; private createProxy; /** Get the array-like view to expose publicly */ get value(): ObservableArrayView; /** * Replace the entire contents in one go. */ setData(newData: Iterable): void; /** Change the callback if needed */ setOnChanged(callback?: (data: readonly T[]) => void): void; } export {}; //# sourceMappingURL=ObservableArray.d.ts.map