import * as React from 'react' export declare function useAsync< ValueType extends any = any, ErrorType extends any = Error, Args extends any[] = any[] >( asyncCallback: (...args: Args) => Promise ): readonly [ { status: AsyncStatus value: ValueType | undefined error: ErrorType | undefined cancel: () => void }, ((...args: Args) => Promise) & { cancel: () => void } ] export declare function useAsyncEffect< ValueType extends any = any, ErrorType extends any = Error >( asyncCallback: () => Promise, dependencies?: React.DependencyList ): { status: AsyncStatus value: ValueType | undefined error: ErrorType | undefined cancel: () => void } export interface AsyncReducerState { status: AsyncStatus value?: ValueType error?: ErrorType } export declare type AsyncAction = | { status: 'idle' | 'loading' | 'cancelled' } | { status: 'success' value: ValueType } | { status: 'error' error?: ErrorType } export declare type AsyncStatus = | 'idle' | 'loading' | 'success' | 'error' | 'cancelled'