/// import type { IncomingMessage } from 'http'; import { ClientOptions, GQtyClient, QueryFetcher, ScalarsEnumsHash, Schema as GQtySchema } from 'gqty'; export * from './schema.generated.js'; export interface GqlClientSchema { query: any; mutation: any; subscription: any; } export interface RequestContext { url: string; init: RequestInit; } export declare function createQueryFetcher(applyRequestContext?: ClientConfig['applyRequestContext']): QueryFetcher; export declare function createAuthQueryFetcher(context?: IncomingMessage, applyRequestContext?: ClientConfig['applyRequestContext']): QueryFetcher; export interface ClientConfig extends Omit, 'schema' | 'scalarsEnumsHash' | 'queryFetcher'> { schema?: Readonly; scalarsEnumsHash?: ScalarsEnumsHash; queryFetcher?: QueryFetcher; authQueryFetcher?: QueryFetcher; context?: WithClient; /** * Called before every request, use this to apply any headers you might * need to for your requests or adjust the request to suite your needs. * * @param {string} url * @param {RequestInit} init * @returns {RequestContext} * @memberof ClientConfig */ applyRequestContext?(url: string, init: RequestInit): Promise | RequestContext; } export interface ApiClient extends GQtyClient { auth: GQtyClient; } export type WithClient = Type & { apiClient?: ApiClient; }; export declare function contextHasClient(context?: IncomingMessage): context is WithClient & Required, 'apiClient'>>; export declare function getClient(clientConfig: ClientConfig): ApiClient;