import type { PluginDefinition, Request } from '../types';
interface ReturnTypeLoading {
    /**
     * show loading handler
     * @returns hide loading handler
     */
    (): () => void;
}
interface StatusTypeLoading {
    /**
     * @param loading loading status
     * @param text loading text
     */
    (loading: boolean, text?: string): void;
}
/**
 * loading handler, show loading status according to the status or return hide loading handler
 * @param loading loading status
 * @param text loading text
 * @returns hide loading handler
 */
export type LoadingHandler = ReturnTypeLoading | StatusTypeLoading;
export type LoadingOptions = {
    /**
     * delay (ms)
     * @default 260
     */
    delay?: number;
    /**
     * custom loading handler
     */
    handler?: LoadingHandler;
};
/**
 * regist loading plugin on current promise request
 * @param request request promise
 * @param options catch error options
 */
export declare function registLoading(request: Request, options: LoadingOptions): Request;
/**
 * 注入加载中插件
 * 只在regist apis上运行 (and 自定义条件下)
 * @param options 插件配置
 */
export declare const createLoadingPlugin: PluginDefinition<LoadingOptions>;
declare module '../types' {
    interface RequestCustomConfig {
        /**
         * enable loading
         * or custom loading handler/options
         * @default false
         */
        loading?: boolean | LoadingHandler | Required<LoadingOptions>;
        /**
         * loading text
         */
        loadingText?: string;
    }
}
export {};
