import { DxPromise } from 'devextreme/core/utils/deferred'; import DataSource from 'devextreme/data/data_source'; import * as ko from 'knockout'; import { DisposableType, IDisposable } from '../disposable-object'; export type KnockoutEntry = ko.Observable | ko.Computed; export declare function subscribeArrayChange(array: ko.ObservableArray, handlers: { added?: (item: T, index?: number) => void; deleted?: (item: T) => void; }): ko.Subscription; export declare function subscribeWithPrev(target: ko.Subscribable, callback: (oldValue: T, newValue: T) => void): IDisposable; export declare function subscribeArrayChangeWithCancel(target: ko.ObservableArray, callback: (changes: ko.utils.ArrayChanges) => boolean): IDisposable; export declare function syncArrayHelper(sourceArray: ko.ObservableArray, destArray: ko.ObservableArray, addHandler: (value: T) => U): ko.Subscription; export declare function subscribeToArrayItemProperties(array: ko.ObservableArray, handler: (item: T) => DisposableType | DisposableType[]): DisposableType; export declare function subscribeAndPerform(subscribable: ko.Subscribable, action: (value: T) => void): DisposableType; export declare function safeSubscribe(observables: { [K in keyof T]: ko.Subscribable; }, handler: (args: T) => DisposableType | void): DisposableType; export declare function safeComputed(observables: { [K in keyof T]: ko.Subscribable; }, handler: (args: T) => V): ko.PureComputed; export declare function createObservableDataSource(observables: { [K in keyof T]: ko.Subscribable; }, load: (args: T) => DxPromise | Array): { dataSource: DataSource; dispose: () => void; };