import { NetworkInterface, createNetworkInterface, addQueryMerging } from './networkInterface'; import { GraphQLResult, Document, FragmentDefinition } from 'graphql'; import { print } from 'graphql-tag/printer'; import { createApolloStore, ApolloStore, createApolloReducer, ApolloReducerConfig } from './store'; import { QueryManager, WatchQueryOptions, ObservableQuery } from './QueryManager'; import { readQueryFromStore, readFragmentFromStore } from './data/readFromStore'; import { writeQueryToStore, writeFragmentToStore } from './data/writeToStore'; import { IdGetter } from './data/extensions'; import { QueryTransformer, addTypenameToSelectionSet } from './queries/queryTransform'; import { MutationBehaviorReducerMap } from './data/mutationResults'; export { createNetworkInterface, addQueryMerging, createApolloStore, createApolloReducer, readQueryFromStore, readFragmentFromStore, addTypenameToSelectionSet as addTypename, writeQueryToStore, writeFragmentToStore, print as printAST }; export declare let fragmentDefinitionsMap: { [fragmentName: string]: FragmentDefinition[]; }; export declare function createFragment(doc: Document, fragments?: FragmentDefinition[]): FragmentDefinition[]; export declare function disableFragmentWarnings(): void; export declare function enableFragmentWarnings(): void; export declare function clearFragmentDefinitions(): void; export default class ApolloClient { networkInterface: NetworkInterface; store: ApolloStore; reduxRootKey: string; initialState: any; queryManager: QueryManager; reducerConfig: ApolloReducerConfig; queryTransformer: QueryTransformer; shouldBatch: boolean; shouldForceFetch: boolean; dataId: IdGetter; fieldWithArgs: (fieldName: string, args?: Object) => string; constructor({networkInterface, reduxRootKey, initialState, dataIdFromObject, queryTransformer, shouldBatch, ssrMode, ssrForceFetchDelay, mutationBehaviorReducers}?: { networkInterface?: NetworkInterface; reduxRootKey?: string; initialState?: any; dataIdFromObject?: IdGetter; queryTransformer?: QueryTransformer; shouldBatch?: boolean; ssrMode?: boolean; ssrForceFetchDelay?: number; mutationBehaviorReducers?: MutationBehaviorReducerMap; }); watchQuery: (options: WatchQueryOptions) => ObservableQuery; query: (options: WatchQueryOptions) => Promise; mutate: (options: { mutation: Document; resultBehaviors?: ({ type: "ARRAY_INSERT"; resultPath: (string | number)[]; storePath: (string | number)[]; where: "PREPEND" | "APPEND"; } | { type: "ARRAY_DELETE"; storePath: (string | number)[]; dataId: string; } | { type: "DELETE"; dataId: string; })[]; variables?: Object; fragments?: FragmentDefinition[]; }) => Promise; reducer(): Function; middleware: () => (store: ApolloStore) => (next: any) => (action: any) => any; initStore(): void; private setStore; }