import { NetworkInterface } from '../transport/networkInterface'; import { QueryListener, ApolloQueryResult, PureQueryOptions, FetchType } from './types'; import { ApolloStore, Store, ApolloReducerConfig } from '../store'; import { NormalizedCache } from '../data/storeUtils'; import { DataProxy } from '../data/proxy'; import { FragmentMatcherInterface } from '../data/fragmentMatcher'; import { ExecutionResult, DocumentNode } from 'graphql'; import { MutationQueryReducersMap } from '../data/mutationResults'; import { QueryScheduler } from '../scheduler/scheduler'; import { ApolloStateSelector } from '../ApolloClient'; import { Observer, Observable } from '../util/Observable'; import { WatchQueryOptions, SubscriptionOptions } from './watchQueryOptions'; import { ObservableQuery } from './ObservableQuery'; export declare class QueryManager { pollingTimers: { [queryId: string]: any; }; scheduler: QueryScheduler; store: ApolloStore; networkInterface: NetworkInterface; ssrMode: boolean; private addTypename; private deduplicator; private reduxRootSelector; private reducerConfig; private queryDeduplication; private fragmentMatcher; private queryListeners; private queryDocuments; private idCounter; private fetchQueryPromises; private observableQueries; private queryIdsByName; constructor({networkInterface, store, reduxRootSelector, reducerConfig, fragmentMatcher, addTypename, queryDeduplication, ssrMode}: { networkInterface: NetworkInterface; store: ApolloStore; reduxRootSelector: ApolloStateSelector; fragmentMatcher?: FragmentMatcherInterface; reducerConfig?: ApolloReducerConfig; addTypename?: boolean; queryDeduplication?: boolean; ssrMode?: boolean; }); broadcastNewStore(store: any): void; mutate({mutation, variables, optimisticResponse, updateQueries: updateQueriesByName, refetchQueries, update: updateWithProxyFn}: { mutation: DocumentNode; variables?: Object; optimisticResponse?: Object | Function; updateQueries?: MutationQueryReducersMap; refetchQueries?: string[] | PureQueryOptions[]; update?: (proxy: DataProxy, mutationResult: Object) => void; }): Promise; fetchQuery(queryId: string, options: WatchQueryOptions, fetchType?: FetchType, fetchMoreForQueryId?: string): Promise; queryListenerForObserver(queryId: string, options: WatchQueryOptions, observer: Observer>): QueryListener; watchQuery(options: WatchQueryOptions, shouldSubscribe?: boolean): ObservableQuery; query(options: WatchQueryOptions): Promise>; generateQueryId(): string; stopQueryInStore(queryId: string): void; getApolloState(): Store; selectApolloState(store: any): Store; getInitialState(): { data: Object; }; getDataWithOptimisticResults(): NormalizedCache; addQueryListener(queryId: string, listener: QueryListener): void; addFetchQueryPromise(requestId: number, promise: Promise>, resolve: (result: ApolloQueryResult) => void, reject: (error: Error) => void): void; removeFetchQueryPromise(requestId: number): void; addObservableQuery(queryId: string, observableQuery: ObservableQuery): void; removeObservableQuery(queryId: string): void; resetStore(): Promise[]>; startQuery(queryId: string, options: WatchQueryOptions, listener: QueryListener): string; startGraphQLSubscription(options: SubscriptionOptions): Observable; removeQuery(queryId: string): void; stopQuery(queryId: string): void; getCurrentQueryResult(observableQuery: ObservableQuery, isOptimistic?: boolean): any; getQueryWithPreviousResult(queryIdOrObservable: string | ObservableQuery, isOptimistic?: boolean): { previousResult: any; variables: { [key: string]: any; } | undefined; document: DocumentNode; }; private getQueryParts(observableQuery); private transformQueryDocument(options); private getExtraReducers(); private fetchRequest({requestId, queryId, document, options, fetchMoreForQueryId}); private refetchQueryByName(queryName); private broadcastQueries(); private generateRequestId(); }