import { AxiosRequestConfig, AxiosResponse, RawAxiosResponseHeaders } from 'axios'; import { MutatorCallback, MutatorOptions } from 'swr'; import { SWROptions } from './types'; import { RequestSettings } from './appSettings/useRequestSettings/types'; import { RequestParams } from '@siafoundation/request'; export type RequestConfig = { swr?: SWROptions; axios?: AxiosRequestConfig; }; export type HookArgsSwr = Params extends void ? { api?: string; config?: RequestConfig; disabled?: boolean; } : { params: Params; api?: string; config?: RequestConfig; disabled?: boolean; }; export type InternalHookArgsSwr = HookArgsSwr & { route: string; config?: RequestConfig; }; export type HookArgsWithPayloadSwr = Params extends void ? Payload extends void ? { api?: string; config?: RequestConfig; disabled?: boolean; } : { api?: string; payload: Payload; config?: RequestConfig; disabled?: boolean; } : Payload extends void ? { params: Params; api?: string; config?: RequestConfig; disabled?: boolean; } : { params: Params; payload: Payload; api?: string; config?: RequestConfig; disabled?: boolean; }; export type InternalHookArgsWithPayloadSwr = HookArgsWithPayloadSwr & { route: string; config?: RequestConfig; }; export type HookArgsCallback = { api?: string; config?: RequestConfig; disabled?: boolean; defaultParams?: Params; }; export type InternalHookArgsCallback = HookArgsCallback & { route: string; defaultParams?: Params; }; export type InternalHookArgs = Params extends void ? { api?: string; config?: RequestConfig; route: string; disabled?: boolean; } : { params: Params; api?: string; config?: RequestConfig; route: string; disabled?: boolean; }; export type InternalCallbackArgs = Params extends void ? Payload extends void ? { api?: string; config?: RequestConfig; } : { payload: Payload; api?: string; config?: RequestConfig; } : Payload extends void ? { params: Params; api?: string; config?: RequestConfig; } : { params: Params; payload: Payload; api?: string; config?: RequestConfig; }; export declare function mergeInternalHookArgsCallback(args: InternalHookArgsCallback): InternalHookArgsCallback; export declare function mergeInternalHookArgsSwr(args: InternalHookArgsSwr): InternalHookArgsSwr; export declare function mergeInternalCallbackArgs(args: InternalCallbackArgs): InternalCallbackArgs; export type Response = { status: number; data?: T; headers?: RawAxiosResponseHeaders; error?: string; }; export declare function buildAxiosConfig(settings: RequestSettings, configArgs: InternalHookArgsCallback, callArgs: InternalCallbackArgs | undefined): AxiosRequestConfig; export declare function buildRouteWithParams(settings: RequestSettings, route: string, hookArgs: { api?: string; params?: Params; } | undefined, callArgs: InternalCallbackArgs | undefined): string; export declare function getRouteFromKey(settings: RequestSettings, key: [string, string], hookArgs: { api?: string; } | undefined, callArgs: { api?: string; } | undefined): string; export type After = (mutate: (matcher: (key: string) => boolean, data?: T | Promise | MutatorCallback, opts?: boolean | MutatorOptions) => Promise<(T | undefined)[]>, args: InternalCallbackArgs, response: AxiosResponse) => Promise;