///
import EventEmitter from 'events';
import type { Client as GraphQLWsClient } from 'graphql-ws';
import type { SubscriptionClient } from 'subscriptions-transport-ws';
import Middleware from './Middleware';
import type { UseClientRequestOptions, Cache, ClientOptions, FetchFunction, GenerateResultOptions, OnErrorFunction, Operation, RequestOptions, Result, CacheKeyObject } from './types/common-types';
declare class GraphQLClient {
url: string;
ssrPromises: Promise[];
FormData?: any;
fetch?: FetchFunction;
fetchOptions: RequestInit;
logErrors: boolean;
useGETForQueries: boolean;
middleware: Middleware;
mutationsEmitter: EventEmitter;
cache?: Cache;
headers: Headers | {
[key: string]: string;
};
ssrMode?: boolean;
subscriptionClient?: SubscriptionClient | GraphQLWsClient;
fullWsTransport?: boolean;
onError?: OnErrorFunction;
constructor(config: ClientOptions);
/** Checks that the given config has the correct required options */
verifyConfig(config: any): void;
setHeader(key: any, value: any): this;
setHeaders(headers: any): this;
removeHeader(key: any): this;
logErrorResult({ result, operation }: {
result: any;
operation: any;
}): void;
generateResult({ fetchError, httpError, graphQLErrors, data, headers }: GenerateResultOptions): Result;
getCacheKey(operation: Operation, options?: UseClientRequestOptions): CacheKeyObject;
getCache(cacheKey: any): object | undefined;
saveCache(cacheKey: any, value: any): void;
removeCache(cacheKey: any): void;
getFetchOptions(operation: any, fetchOptionsOverrides?: {}): {
body?: BodyInit | null | undefined;
cache?: RequestCache | undefined;
credentials?: RequestCredentials | undefined;
headers: HeadersInit;
integrity?: string | undefined;
keepalive?: boolean | undefined;
method: string;
mode?: RequestMode | undefined;
redirect?: RequestRedirect | undefined;
referrer?: string | undefined;
referrerPolicy?: ReferrerPolicy | undefined;
signal?: AbortSignal | null | undefined;
window?: null | undefined;
};
request(operation: Operation, options?: RequestOptions): Promise>;
requestViaHttp(operation: Operation, options?: RequestOptions): Promise>;
requestViaWS(operationPayload: any): Promise;
createSubscription(operationPayload: any): import("subscriptions-transport-ws").Observable, import("graphql/jsutils/ObjMap").ObjMap>>;
invalidateQuery(query: Operation | string): void;
setQueryData(query: Operation | string, updater: (oldState?: any) => any): void;
}
export declare function applyResponseReducer(responseReducer: RequestOptions['responseReducer'], data: any, response: Response): any;
export default GraphQLClient;