import { Endpoint, ExtractEndpointParams, ExtractEndpointResponse, ExtractEndpointVariables } from './endpoint'; import { PublicRequestState } from './reducer'; import { ClientResponse } from './client'; export declare type LazyRequestConfig = Readonly<{ variables?: V; params?: P; headers?: Record; onComplete?: (data: R) => unknown; onFailure?: (res: ClientResponse) => unknown; }>; export declare type LazyRequestHandlerConfig = Readonly & { force?: boolean; }>; export declare type RequestHandler = (config?: LazyRequestHandlerConfig) => Promise; export declare type RefetchRequestHandler = () => void; export declare type PublicRequestStateWithRefetch = PublicRequestState & { refetch: RefetchRequestHandler; }; export declare function useLazyRequest, R = ExtractEndpointResponse, V = ExtractEndpointVariables, P = ExtractEndpointParams>(endpoint: E, config?: LazyRequestConfig): [RequestHandler, PublicRequestStateWithRefetch];