import { ReactNode } from 'react'; import { DocumentNode } from 'graphql'; import { TypedDocumentNode } from '@graphql-typed-document-node/core'; import { Observable, ObservableSubscription } from '../../utilities'; import { FetchResult } from '../../link/core'; import { ApolloError } from '../../errors'; import { ApolloCache, ApolloClient, DefaultContext, FetchPolicy, MutationOptions, NetworkStatus, ObservableQuery, OperationVariables, InternalRefetchQueriesInclude, WatchQueryOptions } from '../../core'; export type { DefaultContext as Context } from "../../core"; export type CommonOptions = TOptions & { client?: ApolloClient; }; export interface BaseQueryOptions extends Omit, "query"> { ssr?: boolean; client?: ApolloClient; context?: DefaultContext; } export interface QueryFunctionOptions extends BaseQueryOptions { skip?: boolean; onCompleted?: (data: TData) => void; onError?: (error: ApolloError) => void; defaultOptions?: Partial>; } export type ObservableQueryFields = Pick, 'startPolling' | 'stopPolling' | 'subscribeToMore' | 'updateQuery' | 'refetch' | 'reobserve' | 'variables' | 'fetchMore'>; export interface QueryResult extends ObservableQueryFields { client: ApolloClient; observable: ObservableQuery; data: TData | undefined; previousData?: TData; error?: ApolloError; loading: boolean; networkStatus: NetworkStatus; called: boolean; } export interface QueryDataOptions extends QueryFunctionOptions { children?: (result: QueryResult) => ReactNode; query: DocumentNode | TypedDocumentNode; } export interface QueryHookOptions extends QueryFunctionOptions { query?: DocumentNode | TypedDocumentNode; } export interface LazyQueryHookOptions extends Omit, 'skip'> { } export interface QueryLazyOptions { variables?: TVariables; context?: DefaultContext; } export type LazyQueryResult = QueryResult; export type QueryTuple = LazyQueryResultTuple; export type LazyQueryExecFunction = (options?: Partial>) => Promise>; export type LazyQueryResultTuple = [ LazyQueryExecFunction, QueryResult ]; export type RefetchQueriesFunction = (...args: any[]) => InternalRefetchQueriesInclude; export interface BaseMutationOptions = ApolloCache> extends Omit, "mutation"> { client?: ApolloClient; notifyOnNetworkStatusChange?: boolean; onCompleted?: (data: TData, clientOptions?: BaseMutationOptions) => void; onError?: (error: ApolloError, clientOptions?: BaseMutationOptions) => void; ignoreResults?: boolean; } export interface MutationFunctionOptions = ApolloCache> extends BaseMutationOptions { mutation?: DocumentNode | TypedDocumentNode; } export interface MutationResult { data?: TData | null; error?: ApolloError; loading: boolean; called: boolean; client: ApolloClient; reset(): void; } export declare type MutationFunction = ApolloCache> = (options?: MutationFunctionOptions) => Promise>; export interface MutationHookOptions = ApolloCache> extends BaseMutationOptions { mutation?: DocumentNode | TypedDocumentNode; } export interface MutationDataOptions = ApolloCache> extends BaseMutationOptions { mutation: DocumentNode | TypedDocumentNode; } export type MutationTuple = ApolloCache> = [ (options?: MutationFunctionOptions) => Promise>, MutationResult ]; export interface OnDataOptions { client: ApolloClient; data: SubscriptionResult; } export interface OnSubscriptionDataOptions { client: ApolloClient; subscriptionData: SubscriptionResult; } export interface BaseSubscriptionOptions { variables?: TVariables; fetchPolicy?: FetchPolicy; shouldResubscribe?: boolean | ((options: BaseSubscriptionOptions) => boolean); client?: ApolloClient; skip?: boolean; context?: DefaultContext; onComplete?: () => void; onData?: (options: OnDataOptions) => any; onSubscriptionData?: (options: OnSubscriptionDataOptions) => any; onError?: (error: ApolloError) => void; onSubscriptionComplete?: () => void; } export interface SubscriptionResult { loading: boolean; data?: TData; error?: ApolloError; variables?: TVariables; } export interface SubscriptionHookOptions extends BaseSubscriptionOptions { subscription?: DocumentNode | TypedDocumentNode; } export interface SubscriptionDataOptions extends BaseSubscriptionOptions { subscription: DocumentNode | TypedDocumentNode; children?: null | ((result: SubscriptionResult) => JSX.Element | null); } export interface SubscriptionCurrentObservable { query?: Observable; subscription?: ObservableSubscription; } //# sourceMappingURL=types.d.ts.map