export interface CancelOptions { revert?: boolean; silent?: boolean; } export type NetworkMode = 'online' | 'always' | 'offlineFirst'; interface RetryerConfig { fn: () => TData | Promise; abort?: () => void; onError?: (error: TError) => void; onSuccess?: (data: TData) => void; onPause?: () => void; onContinue?: () => void; retry?: RetryValue; retryDelay?: RetryDelayValue; networkMode: NetworkMode | undefined; } export interface Retryer { promise: Promise; cancel: (cancelOptions?: CancelOptions) => void; continue: () => Promise; cancelRetry: () => void; continueRetry: () => void; } export type RetryValue = boolean | number | ShouldRetryFunction; type ShouldRetryFunction = (failureCount: number, error: TError) => boolean; export type RetryDelayValue = number | RetryDelayFunction; type RetryDelayFunction = (failureCount: number, error: TError) => number; export declare const canFetch: (networkMode: NetworkMode | undefined) => boolean; export declare class CancelledError { revert?: boolean; silent?: boolean; constructor(options?: CancelOptions); } export declare const isCancelledError: (value: any) => value is CancelledError; export declare const createRetryer: (config: RetryerConfig) => Retryer; export {};