///
import { Store } from "redux";
import { SubscribeWithSyncOptions, QuerySyncOptions } from "./client";
import { OfflineEffectConfig } from "./store";
import { OperationVariables } from "apollo-client";
import { DocumentNode } from "graphql";
import { QueryWithVariables } from "./helpers/offline";
declare type SubscribeWithSyncEffectOptions = SubscribeWithSyncOptions & {
lastSyncTimestamp?: number;
baseLastSyncTimestamp?: number;
};
export declare type DeltaSyncEffect = {
options: SubscribeWithSyncEffectOptions;
observer: ZenObservable.SubscriptionObserver;
callback: (Subscription: any) => void;
};
export declare const DELTASYNC_KEY = "deltaSync";
export declare type DeltaSyncState = {
metadata: {
[key: string]: DeltaSyncStateMetadata;
};
};
export declare type DeltaSyncStateMetadata = {
baseLastSyncTimestamp: number;
lastSyncTimestamp: number;
};
export declare const hashForOptions: (options: SubscribeWithSyncOptions) => string;
export declare const boundEnqueueDeltaSync: (store: Store, options: SubscribeWithSyncEffectOptions, observer: ZenObservable.SubscriptionObserver, callback: (Subscription: any) => void) => void;
export declare const buildSync: (typename: string, options: {
baseQuery?: BuildBaseQuerySyncOptions;
subscriptionQuery?: BuildQuerySyncOptions;
deltaQuery?: BuildQuerySyncOptions;
cacheUpdates?: (item: T) => QueryWithVariables[];
}, idField?: string) => SubscribeWithSyncOptions;
export declare type BuildQuerySyncOptions = {
query: DocumentNode;
variables: TVariables;
};
export declare type BuildBaseQuerySyncOptions = QuerySyncOptions & {
baseRefreshIntervalInSeconds?: number;
};
export declare const offlineEffectConfig: OfflineEffectConfig;
export {};