import type { IRestOptions, IRestOptionsGlobals } from "../interfaces"; export type CheckAndRestoreDefault = () => void; export type GetOption = >(key: K) => IRestOptionsGlobals[K]; export type SetOption = , K extends keyof O, V extends O[K]>(key: K, val: V) => void; export type UnsetOption = >(key: K) => void; export type CloneOptions = () => Partial>; export type MergeOrAssignOptions = (obj?: Partial>) => void; export default function useRestClientBuilder(options?: Partial>): { checkAndRestoreDefaults: CheckAndRestoreDefault; createRestClient: () => () => { cacheKey: import("..").CacheKey; cacheClear: import("..").CacheClear; cacheClearByKey: import("..").CacheClearByKey; cacheSet: import("..").CacheSet; cacheGet: import("..").CacheGet; optionsOverride: import("..").OptionsOverride; getOption: GetOption; setOption: SetOption; cloneOptions: CloneOptions; request: import("..").RequestMethodFull; get: import("..").RequestMethod; del: import("..").RequestMethod; post: import("..").RequestMethod; patch: import("..").RequestMethod; put: import("..").RequestMethod; }; getOption: GetOption; setOption: SetOption; unsetOption: UnsetOption; cloneOptions: CloneOptions; mergeOptions: MergeOrAssignOptions; assignOptions: MergeOrAssignOptions; };