import ApolloClient, { ApolloCurrentQueryResult, ApolloQueryResult, FetchMoreOptions, FetchMoreQueryOptions, NetworkStatus, ObservableQuery, OperationVariables, WatchQueryOptions } from 'apollo-client'; import { DocumentNode } from 'graphql'; import { Omit } from './utils'; export interface QueryHookState extends Pick, 'error' | 'errors' | 'loading' | 'partial' | 'stale'> { data?: TData; networkStatus: NetworkStatus | undefined; } export interface QueryHookOptions extends Omit, 'query'> { notifyOnNetworkStatusChange?: boolean; pollInterval?: number; client?: ApolloClient; ssr?: boolean; skip?: boolean; suspend?: boolean; } export interface QueryHookResult extends QueryHookState, Pick, 'refetch' | 'startPolling' | 'stopPolling' | 'updateQuery'> { fetchMore(fetchMoreOptions: FetchMoreQueryOptions & FetchMoreOptions): Promise>; } export declare function useQuery(query: DocumentNode, { ssr, skip, suspend, pollInterval, notifyOnNetworkStatusChange, client: overrideClient, context, metadata, variables, fetchPolicy: actualCachePolicy, errorPolicy, fetchResults, }?: QueryHookOptions): QueryHookResult;