import { BreezeEvent } from './event'; import { EntityAspect } from './entity-aspect'; import { DataProperty } from './entity-metadata'; /** @hidden */ export interface ObservableArray { push: (...args: any[]) => number; _push: (...args: any[]) => number; unshift: (...args: any[]) => number; pop: () => any; shift: () => any; splice: (...args: any[]) => any[]; slice: (a: number, b?: number) => any[]; length: number; getEntityAspect: () => EntityAspect; arrayChanged: BreezeEvent; parent?: Object; parentProperty?: DataProperty; _getEventParent: () => Object; _getPendingPubs: () => any[]; _beforeChange: () => void; _processAdds(items: any[]): void; _processRemoves(items: any[]): void; _origValues: any[]; _pendingArgs: any; } export interface ArrayChangedArgs { array: any[]; added?: any[]; removed?: any[]; } declare function updateEntityState(obsArray: ObservableArray): void; declare function publish(publisher: ObservableArray, eventName: string, eventArgs: any): void; declare function initializeParent(obsArray: any, parent: Object, parentProperty: DataProperty): void; /** @hidden @internal */ export declare const observableArray: { mixin: { push: (...args: any[]) => any; _push: (...args: any[]) => any; unshift: (...args: any[]) => any; pop: () => any; shift: () => any; splice: (...args: any[]) => any; getEntityAspect: () => any; _getEventParent: () => any; _getPendingPubs: () => any; _beforeChange: () => void; }; updateEntityState: typeof updateEntityState; publish: typeof publish; initializeParent: typeof initializeParent; }; export {};