import type { FetchOptions, ResponseType as _ResponseType } from 'ofetch'; import type { NitroFetchRequest, TypedInternalResponse, AvailableRouterMethod as _AvailableRouterMethod } from 'nitropack/types'; import type { MaybeRefOrGetter, Ref } from 'vue'; import type { AsyncData, AsyncDataOptions, KeysOf, MultiWatchSources, PickFrom, _Transform } from './asyncData.js'; import type { NuxtError } from './error.js'; type AvailableRouterMethod = _AvailableRouterMethod | Uppercase<_AvailableRouterMethod>; export type FetchResult> = TypedInternalResponse>; type ComputedOptions> = { [K in keyof T]: T[K] extends Function ? T[K] : ComputedOptions | MaybeRefOrGetter; }; interface NitroFetchOptions = AvailableRouterMethod, DataT = any> extends Omit, 'cache'> { method?: M; cache?: FetchOptions<_ResponseType, DataT>['cache'] | false; } type ComputedFetchOptions, DataT = any> = ComputedOptions>; export interface UseFetchOptions = KeysOf, DefaultT = undefined, R extends NitroFetchRequest = string & {}, M extends AvailableRouterMethod = AvailableRouterMethod> extends Omit, 'watch'>, Omit, 'timeout'> { key?: MaybeRefOrGetter; $fetch?: typeof globalThis.$fetch; watch?: MultiWatchSources | false; } export interface UseFetchOptionsWithTransform = KeysOf, DefaultT = undefined, R extends NitroFetchRequest = string & {}, M extends AvailableRouterMethod = AvailableRouterMethod> extends Omit, 'transform'> { transform: _Transform; } type FetchFactoryDataT = [unknown] extends [FDataT] ? _ResT : FDataT; type FetchFactoryDefaultT = [undefined] extends [FDefaultT] ? Fallback : FDefaultT; type FetchFactoryPickKeys = [Array] extends [FPickKeys] ? PickKeys : FPickKeys & KeysOf; export interface UseFetch = never[], FDefaultT = undefined> { , ReqT extends NitroFetchRequest = NitroFetchRequest, Method extends AvailableRouterMethod = ResT extends void ? 'get' extends AvailableRouterMethod ? 'get' : AvailableRouterMethod : AvailableRouterMethod, _ResT = ResT extends void ? FetchResult : ResT, DataT = _ResT, PickKeys extends KeysOf = KeysOf, DefaultT = FetchFactoryDefaultT>(request: Ref | ReqT | (() => ReqT), opts: UseFetchOptionsWithTransform<_ResT, DataT, PickKeys, DefaultT, ReqT, Method>): AsyncData | DefaultT, ErrorT | undefined>; , ReqT extends NitroFetchRequest = NitroFetchRequest, Method extends AvailableRouterMethod = ResT extends void ? 'get' extends AvailableRouterMethod ? 'get' : AvailableRouterMethod : AvailableRouterMethod, _ResT = ResT extends void ? FetchResult : ResT, DataT = _ResT, PickKeys extends KeysOf = KeysOf, DefaultT = FetchFactoryDefaultT>(request: Ref | ReqT | (() => ReqT), opts: UseFetchOptionsWithTransform<_ResT, DataT, PickKeys, DefaultT, ReqT, Method>): AsyncData | DefaultT, ErrorT | undefined>; , ReqT extends NitroFetchRequest = NitroFetchRequest, Method extends AvailableRouterMethod = ResT extends void ? 'get' extends AvailableRouterMethod ? 'get' : AvailableRouterMethod : AvailableRouterMethod, _ResT = ResT extends void ? FetchResult : ResT, DataT = FetchFactoryDataT, PickKeys extends KeysOf = KeysOf, DefaultT = FetchFactoryDefaultT>(request: Ref | ReqT | (() => ReqT), opts?: UseFetchOptions<_ResT, DataT, PickKeys, DefaultT, ReqT, Method>): AsyncData> | DefaultT, ErrorT | undefined>; , ReqT extends NitroFetchRequest = NitroFetchRequest, Method extends AvailableRouterMethod = ResT extends void ? 'get' extends AvailableRouterMethod ? 'get' : AvailableRouterMethod : AvailableRouterMethod, _ResT = ResT extends void ? FetchResult : ResT, DataT = FetchFactoryDataT, PickKeys extends KeysOf = KeysOf, DefaultT = FetchFactoryDefaultT>(request: Ref | ReqT | (() => ReqT), opts?: UseFetchOptions<_ResT, DataT, PickKeys, DefaultT, ReqT, Method>): AsyncData> | DefaultT, ErrorT | undefined>; , ReqT extends NitroFetchRequest = NitroFetchRequest, Method extends AvailableRouterMethod = ResT extends void ? 'get' extends AvailableRouterMethod ? 'get' : AvailableRouterMethod : AvailableRouterMethod, _ResT = ResT extends void ? FetchResult : ResT, DataT = _ResT, PickKeys extends KeysOf = KeysOf, DefaultT = undefined>(request: Ref | ReqT | (() => ReqT), arg1?: string | UseFetchOptions<_ResT, DataT, PickKeys, DefaultT, ReqT, Method>, arg2?: string): AsyncData | DefaultT, ErrorT | undefined>; } export interface CreateUseFetch { = FResT extends void ? 'get' extends AvailableRouterMethod ? 'get' : AvailableRouterMethod : AvailableRouterMethod, F_ResT = FResT extends void ? FetchResult : FResT, FDataT = F_ResT, FPickKeys extends KeysOf = KeysOf, FDefaultT = undefined>(options?: Partial> | ((callerOptions: UseFetchOptions) => Partial>)): UseFetch; } /** * A factory function to create a custom `useFetch` composable with pre-defined default options. * @since 4.2.0 */ export declare const createUseFetch: CreateUseFetch; export declare const useFetch: UseFetch; export declare const useLazyFetch: UseFetch; export {};