import type { TypedDocumentNode } from '@graphql-typed-document-node/core'; import type { TadaDocumentNode } from 'gql.tada'; import type { DocumentNode } from 'graphql'; import { Experimental_BaseClient } from '../experimental/index.js'; import type { Experimental_SuiClientTypes } from '../experimental/index.js'; import { GraphQLTransport } from '../experimental/transports/graphql.js'; import type { TypedDocumentString } from './generated/queries.js'; export type GraphQLDocument, Variables = Record> = string | DocumentNode | TypedDocumentString | TypedDocumentNode | TadaDocumentNode; export type GraphQLQueryOptions, Variables = Record> = { query: GraphQLDocument; operationName?: string; extensions?: Record; signal?: AbortSignal; } & (Variables extends { [key: string]: never; } ? { variables?: Variables; } : { variables: Variables; }); export type GraphQLQueryResult> = { data?: Result; errors?: GraphQLResponseErrors; extensions?: Record; }; export type GraphQLResponseErrors = Array<{ message: string; locations?: { line: number; column: number; }[]; path?: (string | number)[]; }>; export interface SuiGraphQLClientOptions> { url: string; fetch?: typeof fetch; headers?: Record; queries?: Queries; network?: Experimental_SuiClientTypes.Network; mvr?: Experimental_SuiClientTypes.MvrOptions; } export declare class SuiGraphQLRequestError extends Error { } export declare class SuiGraphQLClient = {}> extends Experimental_BaseClient { #private; core: GraphQLTransport; constructor({ url, fetch: fetchFn, headers, queries, network, mvr, }: SuiGraphQLClientOptions); query, Variables = Record>(options: GraphQLQueryOptions): Promise>; execute, Result = Queries[Query] extends GraphQLDocument ? R : Record, Variables = Queries[Query] extends GraphQLDocument ? V : Record>(query: Query, options: Omit, 'query'>): Promise>; }