import { ApolloLink, FetchResult } from 'apollo-link'; import { Cache, ApolloCache, DataProxy } from 'apollo-cache'; import { QueryManager } from './core/QueryManager'; import { ApolloQueryResult } from './core/types'; import { ObservableQuery } from './core/ObservableQuery'; import { Observable } from './util/Observable'; import { WatchQueryOptions, SubscriptionOptions, MutationOptions, ModifiableWatchQueryOptions, MutationBaseOptions } from './core/watchQueryOptions'; import { DataStore } from './data/store'; export interface DefaultOptions { watchQuery?: ModifiableWatchQueryOptions; query?: ModifiableWatchQueryOptions; mutate?: MutationBaseOptions; } export default class ApolloClient implements DataProxy { link: ApolloLink; store: DataStore; cache: ApolloCache; queryManager: QueryManager; disableNetworkFetches: boolean; version: string; queryDeduplication: boolean; defaultOptions: DefaultOptions; private devToolsHookCb; private proxy; private ssrMode; constructor(options: { link: ApolloLink; cache: ApolloCache; ssrMode?: boolean; ssrForceFetchDelay?: number; connectToDevTools?: boolean; queryDeduplication?: boolean; defaultOptions?: DefaultOptions; }); watchQuery(options: WatchQueryOptions): ObservableQuery; query(options: WatchQueryOptions): Promise>; mutate(options: MutationOptions): Promise>; subscribe(options: SubscriptionOptions): Observable; readQuery(options: DataProxy.Query): Cache.DiffResult; readFragment(options: DataProxy.Fragment): Cache.DiffResult | null; writeQuery(options: DataProxy.WriteQueryOptions): void; writeFragment(options: DataProxy.WriteFragmentOptions): void; __actionHookForDevTools(cb: () => any): void; initQueryManager(): void; resetStore(): Promise[]> | Promise; private initProxy(); }