import { State } from "statedrive"; export interface AbortableFetchResponse { result: Promise<{ data: T; error?: string; }>; controller: AbortController; headers: Promise; } export type FetchResourceCallback = (v?: T) => T extends true ? Promise : void; declare function buildUseResource(cache: boolean): AbortableFetchResponse, R extends boolean = true>(func: T, args: Parameters, cachingStore?: State, requiredDeps?: Partial> | undefined) => { resp: Awaited["result"]>["data"]; fetchResource: (returnPromise?: R | undefined) => void | (R extends true ? Promise : void); error: string; fetchState: "error" | "fetching" | "idle"; setResp: (k: Awaited["result"]>["data"]) => void; clearError: () => void; }; export declare const useResource: AbortableFetchResponse, R extends boolean = true>(func: T, args: Parameters, cachingStore?: State, requiredDeps?: Partial> | undefined) => { resp: Awaited["result"]>["data"]; fetchResource: (returnPromise?: R | undefined) => void | (R extends true ? Promise : void); error: string; fetchState: "error" | "fetching" | "idle"; setResp: (k: Awaited["result"]>["data"]) => void; clearError: () => void; }; export declare const useCachingResource: AbortableFetchResponse, R extends boolean = true>(func: T, args: Parameters, cachingStore?: State, requiredDeps?: Partial> | undefined) => { resp: Awaited["result"]>["data"]; fetchResource: (returnPromise?: R | undefined) => void | (R extends true ? Promise : void); error: string; fetchState: "error" | "fetching" | "idle"; setResp: (k: Awaited["result"]>["data"]) => void; clearError: () => void; }; export { buildUseResource };