import { AlovaGenerics, Method } from 'alova'; import { AlovaFrontMiddleware, AlovaMethodHandler, UseHookConfig, UseHookExposure } from '../general'; /** Both use request and use watcher have types */ type InitialDataType = number | string | boolean | object; export interface FrontRequestHookConfig extends UseHookConfig { /** Whether to initiate a request immediately */ immediate?: boolean; /** set initial data for request state */ initialData?: InitialDataType | (() => InitialDataType); /** Additional regulatory status, which can be updated via update state */ managedStates?: Record; /** Middleware */ middleware?: AlovaFrontMiddleware; } /** useRequest config export type */ export type RequestHookConfig = FrontRequestHookConfig; /** * Automatically manage response status hooks * @example * ```js * const { loading, data, error, send, onSuccess } = useRequest(alova.Get('/api/user')) * ``` * @param methodHandler method instance or get function * @param config Configuration items * @returns Responsive request data, operation functions and event binding functions */ export declare function useRequest( methodHandler: Method | AlovaMethodHandler, config?: RequestHookConfig ): UseHookExposure;