import * as graphql_jsutils_ObjMap from 'graphql/jsutils/ObjMap';
import { Exchange, AnyVariables, GraphQLRequestParams, ClientOptions, Client } from '@urql/core';
export * from '@urql/core';
import { ExecutionResult } from 'graphql';
import { UserContext } from 'fuse';
import { GraphQLParams } from 'graphql-yoga';
export { registerUrql as registerClient } from '@urql/next/rsc';

declare const cacheExchange: Exchange;

declare const __internal_execute: <Data = any, Variables extends AnyVariables = AnyVariables>(request: GraphQLRequestParams<Data, Variables> & {
    context?: ((params: GraphQLParams) => UserContext) | undefined;
}) => Promise<ExecutionResult<Data, graphql_jsutils_ObjMap.ObjMap<unknown>>>;
type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
declare const createClient: (opts: Optional<ClientOptions, 'exchanges'>) => Client;

export { __internal_execute, cacheExchange, createClient };
