import { GQlessClient, GQlessError, RetryOptions } from 'gqless'; import { FetchPolicy, OnErrorHandler } from '../common'; import { ReactClientOptionsWithDefaults } from '../utils'; export declare type LazyFetchPolicy = Exclude; export interface UseLazyQueryOptions { onCompleted?: (data: TData) => void; onError?: OnErrorHandler; fetchPolicy?: LazyFetchPolicy; retry?: RetryOptions; suspense?: boolean; } export interface UseLazyQueryState { data: TData | undefined; error?: GQlessError; isLoading: boolean; isCalled: boolean; } export interface UseLazyQuery { (queryFn: (query: GeneratedSchema['query'], args: TArgs) => TData, options?: UseLazyQueryOptions): readonly [ (...opts: undefined extends TArgs ? [ { fn?: (query: GeneratedSchema['query'], args: TArgs) => TData; args?: TArgs; fetchPolicy?: LazyFetchPolicy; }? ] : [ { fn?: (query: GeneratedSchema['query'], args: TArgs) => TData; args: TArgs; fetchPolicy?: LazyFetchPolicy; } ]) => Promise, UseLazyQueryState ]; } export declare function createUseLazyQuery(client: GQlessClient, { defaults: { retry: defaultRetry, lazyQuerySuspense: defaultSuspense, lazyFetchPolicy: defaultFetchPolicy, }, }: ReactClientOptionsWithDefaults): UseLazyQuery;