import { ModifiableWatchQueryOptions, WatchQueryOptions, FetchMoreQueryOptions, SubscribeToMoreOptions } from './watchQueryOptions'; import { Observable } from '../util/Observable'; import { QueryScheduler } from '../scheduler/scheduler'; import { ApolloError } from '../errors/ApolloError'; import { ApolloQueryResult } from './types'; import { NetworkStatus } from '../queries/networkStatus'; export declare type ApolloCurrentResult = { data: T | {}; loading: boolean; networkStatus: NetworkStatus; error?: ApolloError; partial?: boolean; }; export interface FetchMoreOptions { updateQuery: (previousQueryResult: Object, options: { fetchMoreResult: Object; queryVariables: Object; }) => Object; } export interface UpdateQueryOptions { variables?: Object; } export declare class ObservableQuery extends Observable> { options: WatchQueryOptions; queryId: string; variables: { [key: string]: any; }; private isCurrentlyPolling; private shouldSubscribe; private scheduler; private queryManager; private observers; private subscriptionHandles; private lastResult; private lastError; constructor({scheduler, options, shouldSubscribe}: { scheduler: QueryScheduler; options: WatchQueryOptions; shouldSubscribe?: boolean; }); result(): Promise>; currentResult(): ApolloCurrentResult; getLastResult(): ApolloQueryResult; refetch(variables?: any): Promise>; fetchMore(fetchMoreOptions: FetchMoreQueryOptions & FetchMoreOptions): Promise>; subscribeToMore(options: SubscribeToMoreOptions): () => void; setOptions(opts: ModifiableWatchQueryOptions): Promise>; setVariables(variables: any, tryFetch?: boolean): Promise>; updateQuery(mapFn: (previousQueryResult: any, options: UpdateQueryOptions) => any): void; stopPolling(): void; startPolling(pollInterval: number): void; private onSubscribe(observer); private setUpQuery(); private tearDownQuery(); }