import { GQtyError, type BaseGeneratedSchema, type GQtyClient, type RetryOptions } from 'gqty'; import { type LegacyFetchPolicy, type OnErrorHandler } from '../common'; import type { ReactClientOptionsWithDefaults } from '../utils'; export type LazyFetchPolicy = Exclude; export interface UseLazyQueryOptions { onCompleted?: (data: TData) => void; onError?: OnErrorHandler; fetchPolicy?: LazyFetchPolicy; retry?: RetryOptions; suspense?: boolean; operationName?: string; } export interface UseLazyQueryState { data: TData | undefined; error?: GQtyError; isLoading: boolean; isCalled: boolean; promise?: Promise; } export interface UseLazyQuery { (fn: (query: GeneratedSchema['query'], args: TArgs) => TData, options?: UseLazyQueryOptions): readonly [ (...opts: undefined extends TArgs ? [ { fn?: (query: GeneratedSchema['query'], args: TArgs) => TData; args?: TArgs; fetchPolicy?: LazyFetchPolicy; operationName?: string; }? ] : [ { fn?: (query: GeneratedSchema['query'], args: TArgs) => TData; args: TArgs; fetchPolicy?: LazyFetchPolicy; opertionName?: string; } ]) => Promise, UseLazyQueryState ]; } export declare function createUseLazyQuery({ resolve }: GQtyClient, { defaults: { retry: defaultRetry, lazyQuerySuspense: defaultSuspense, lazyFetchPolicy: defaultFetchPolicy, }, }: ReactClientOptionsWithDefaults): UseLazyQuery;