import { type RetryableFetchParams } from '@vrplatform/utils';
import { type GQtyClient } from 'gqty';
import { type GeneratedSchema } from '../gqty';
import type { GqlAuthParam } from '../types';
export type HasuraClient = ReturnType<typeof useHasuraClient>;
export declare const defaultAssertHasuraRetryableResponse: RetryableFetchParams['assertResponse'];
export declare function useHasuraClient({ uri, secret, auditUserId, accessToken, subscriptions, headers, credentials, ...retryableFetchArgs }?: GqlAuthParam & RetryableFetchParams): {
    readonly client: GQtyClient<GeneratedSchema>;
    subscriptionsClient: import("gqty").SubscriptionsClient;
    mutate<T = unknown>(resolved: (sub: import("../gqty").Mutation) => T, options?: import("../wrap").ResolveOptionsWithSession<T>): Promise<T>;
    query<T = unknown>(resolved: (sub: import("../gqty").Query) => T, options?: import("../wrap").ResolveOptionsWithSession<T>): Promise<T>;
    subscribe<T = unknown>(resolved: (sub: import("../gqty").Subscription) => T, onData: (data: T, unsubscribeFn: () => Promise<void>) => void, onError?: (err: Error, unsubscribeFn: () => Promise<void>) => void): () => Promise<void>;
};
