import { SubscribableOrPromise } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; import { Subscriber } from 'rxjs/Subscriber'; import { Subscription } from 'rxjs/Subscription'; import { Deferred as IDeferred, JSONPatch, LocalForage } from './types'; export declare function convertJsonDates(jsonData: any): {}; export declare function toJSON(obj: any): any; export declare function diff(obj1: any, obj2: any): any; export declare function applyPatch(res: any, patch: JSONPatch): void; export declare function mergeObjects(mine: any, old: any, yours: any): {}; export declare function forEachVal(res: any, cb: Function): void; export declare function toJsonReplacer(key: any, value: any): any; export declare function fromJsonReviver(_: any, value: any): any; export declare function toObject(res: any): any; export declare function removeResValues(res: any): void; export declare function setResValues(res: any, vals: any): void; export declare function persistentStorageKey(url: string): string; export declare function advancedStorage(localForage: LocalForage): boolean; export declare function uuid(): string; export declare class Deferred implements IDeferred { promise: Promise; resolve: (val?: T) => void; reject: (err: Error) => void; constructor(); } export declare function isSubscribableOrPromise(value: any): value is SubscribableOrPromise; export declare class ResolvedSubject extends Subject { private _value; private _resolved; constructor(promise: Promise); readonly value: T; getValue(): T; next(value: T): void; protected _subscribe(subscriber: Subscriber): Subscription; } export declare function convertToResolvedSubject(subject: Subject, promise: Promise): ResolvedSubject;