import type { AsyncReturnType } from "./utils"; export declare const RESOURCE_PENDING = 0; export declare const RESOURCE_RESOLVED = 1; export declare const RESOURCE_REJECTED = 2; declare type ResourceStatus = typeof RESOURCE_PENDING | typeof RESOURCE_RESOLVED | typeof RESOURCE_REJECTED | undefined; export declare type Resource any = (...args: any) => any, I = undefined> = { read(): AsyncReturnType | undefined; preload(): void; status: ResourceStatus; isLoading: boolean; value: AsyncReturnType | I | undefined; promise: (T extends Promise ? T : T extends (...args: any) => Promise ? Promise : undefined) | undefined; error: Error | undefined; }; export interface UseResourceResponse { data: T | undefined; isLoading: boolean; error: Error | undefined; } export interface Options { isPreloadAfterCallRefetch?: boolean; /** * Set false to prevents fetching in the first step, just fetch after deps be * changed, or refetch called. * * Default is true. */ startFetchAtFirstRender?: boolean; /** * If it is true, during api reFetching, data will keep previous data until * refetch ended and new data assign * * Default is false */ keepDataAliveWhenFetching?: boolean; } export interface UseCreateResourceResponse any> { resource: Resource>; refetch: (...args: Parameters) => void; } export {}; //# sourceMappingURL=resource.d.ts.map