import type { GQtyClient, ResolveOptions, SubscriptionsClient } from 'gqty';
import type { GeneratedSchema } from './gqty';
export type ResolveOptionsWithSession<T> = ResolveOptions<T>;
type Client = GQtyClient<GeneratedSchema>;
export declare function wrapGraphQLClient(getClient: () => Client, subscriptionsClient?: SubscriptionsClient): {
    readonly client: Client;
    subscriptionsClient: SubscriptionsClient;
    mutate<T = unknown>(resolved: (sub: Client["mutation"]) => T, options?: ResolveOptionsWithSession<T>): Promise<T>;
    query<T = unknown>(resolved: (sub: Client["query"]) => T, options?: ResolveOptionsWithSession<T>): Promise<T>;
    subscribe<T = unknown>(resolved: (sub: Client["subscription"]) => T, onData: (data: T, unsubscribeFn: () => Promise<void>) => void, onError?: (err: Error, unsubscribeFn: () => Promise<void>) => void): () => Promise<void>;
};
export {};
