import type { AccessDecision, AccessContext, AccessManager, AccessPath, AccessResource } from '@lanaqi/rsr';
import { AbstractAddon } from '@lanaqi/rsr';
import NProgress, { type NProgressOptions } from 'nprogress';
import 'nprogress/nprogress.css';
/**
 * NProgress 插件实现
 */
export declare class NProgressAddon extends AbstractAddon {
    /**
     * NProgress 实例
     * @private
     */
    private readonly progress;
    /**
     * 超时时间
     * @private
     */
    private readonly timeout;
    /**
     * 超时清理
     * @private
     */
    private clear?;
    /**
     * 构造函数
     * @param progress NProgress 实例
     * @param timeout 超时时间
     */
    constructor(progress: NProgress.NProgress, timeout: number);
    /**
     * 守护之前
     * @param context 上下文
     * @param manager 管理器
     * @param currentPath 当前路径
     * @param currentResource 当前资源
     * @override
     */
    guardBefore(context: AccessContext, manager: AccessManager, currentPath: AccessPath, currentResource: AccessResource | null): void;
    /**
     * 守护之后
     * @param context 上下文
     * @param manager 管理器
     * @param currentPath 当前路径
     * @param currentResource 当前资源
     * @param currentDecision 当前决策
     * @override
     */
    guardAfter(context: AccessContext, manager: AccessManager, currentPath: AccessPath, currentResource: AccessResource | null, currentDecision: AccessDecision): void;
}
/**
 * NProgress 插件函数
 * @param config NProgress 可选配置
 * @param timeout 超时时间，默认 15 * 1000 毫秒
 */
export declare const nProgressAddon: (config?: Partial<NProgressOptions>, timeout?: number) => NProgressAddon;
