import 'isomorphic-fetch'; import qs from 'qs'; import { ExecutionResult, GraphQLError } from 'graphql'; import { Observable } from 'rxjs'; import { QueryHookOptions, MutationHookOptions } from '@apollo/client'; import { TypeMapper } from './applyTypeMapperToResponse'; import { LinkedType } from './linkTypeMap'; import { Fields, Gql } from './requestToGql'; import { SubscriptionCreatorOptions } from './getSubscriptionCreator'; export declare class ClientError extends Error { errors?: readonly GraphQLError[] | undefined; constructor(message?: string, errors?: readonly GraphQLError[] | undefined); } export interface Fetcher { (gql: Gql, fetchImpl: typeof fetch, qsImpl: typeof qs): Promise>; } export interface Client { apolloQuery(apolloContext: any, request: QR, options?: QueryHookOptions> | undefined): any; useQuery(request: QR, options?: QueryHookOptions> | undefined): any; useMutation(request: Function, options?: MutationHookOptions> | undefined): any; query(request: QR): Promise>; mutation(request: MR): Promise>; subscription(request: SR): Observable>; chain: { query: QC; mutation: MC; subscription: SC; }; } export interface ClientOptions { fetcher?: Fetcher; subscriptionCreatorOptions?: SubscriptionCreatorOptions; } export interface ClientEmbeddedOptions { queryRoot?: LinkedType; mutationRoot?: LinkedType; subscriptionRoot?: LinkedType; typeMapper?: TypeMapper; } export declare const createClient: ({ fetcher, subscriptionCreatorOptions, queryRoot, mutationRoot, subscriptionRoot, typeMapper, }: ClientOptions & ClientEmbeddedOptions) => Client;