import type { AccessBlocker } from './blocker';
import type { AccessHandler } from './handler';
/**
 * 访问管理器
 */
export interface AccessManager {
    /**
     * 是否已禁用
     */
    isDisabled(): boolean;
    /**
     * 设置已禁用
     */
    setDisabled(disabled: boolean): void;
    /**
     * 获取处理器
     */
    getHandler(): AccessHandler;
    /**
     * 设置处理器
     * @param handler 处理器
     */
    setHandler(handler: AccessHandler): void;
    /**
     * 获取阻断器
     */
    getBlocker(): AccessBlocker;
    /**
     * 设置阻断器
     * @param blocker 阻断器
     */
    setBlocker(blocker: AccessBlocker): void;
    /**
     * 获取父级
     */
    getParent(): AccessManager | undefined;
    /**
     * 设置父级
     * @param parent 父级
     */
    setParent(parent: AccessManager): void;
}
/**
 * 简单管理器
 */
export declare class SimpleManager implements AccessManager {
    /**
     * 已禁用
     * @private
     */
    private disabled;
    /**
     * 处理器
     * @private
     */
    private handler;
    /**
     * 阻断器
     * @private
     */
    private blocker;
    /**
     * 父级
     * @private
     */
    private parent?;
    /**
     * 构造函数
     * @param disabled 已禁用
     * @param handler 处理器
     * @param blocker 阻断器
     */
    constructor(disabled: boolean, handler: AccessHandler, blocker: AccessBlocker);
    /**
     * 获取是否已禁用
     */
    isDisabled(): boolean;
    /**
     * 设置是否已禁用
     */
    setDisabled(disabled: boolean): void;
    /**
     * 获取处理器
     */
    getHandler(): AccessHandler;
    /**
     * 设置处理器
     * @param handler 处理器
     */
    setHandler(handler: AccessHandler): void;
    /**
     * 获取阻断器
     */
    getBlocker(): AccessBlocker;
    /**
     * 设置阻断器
     * @param blocker 阻断器
     */
    setBlocker(blocker: AccessBlocker): void;
    /**
     * 获取父级
     */
    getParent(): AccessManager | undefined;
    /**
     * 设置父级
     * @param parent 父级
     */
    setParent(parent?: AccessManager): void;
}
