import type { PluginDefinition, Request } from '../types';
/**
 * retry options
 */
export type RetryOptions = {
    /**
     * max retry count
     * @default 3
     */
    maxCount?: number;
    /**
     * enabled retry delay (formula(2 ^ count - 1 / 2) * 1000 ms)
     * @default true
     */
    delay?: boolean;
    /**
     * customized retry condition
     * @default (error) => error.message === 'Network Error'
     */
    validateError?: (error: Error) => boolean;
};
export declare const RetryCountSymbol = "__RetryCount__";
/**
 * regist retry plugin on current promise request
 * @param request request promise
 * @param options catch error options
 */
export declare function registRetry(request: Request, options: RetryOptions): Request;
/**
 * 注册重试插件
 * 只在regist apis上运行 (and 自定义条件下)
 * @param options 插件配置
 */
export declare const createRetryPlugin: PluginDefinition<RetryOptions>;
declare module '../types' {
    interface RequestCustomConfig {
        /**
         * enable retry
         * or custom retry options
         * @default false
         */
        retry?: boolean | RetryOptions;
    }
}
