import type { AccessMatcher } from './matcher';
import type { AccessNavigator } from './navigator';
import type { AccessRecorder } from './recorder';
import type { AccessStorer } from './storer';
import type { AccessVoter } from './voter';
/**
 * 访问上下文
 */
export interface AccessContext {
    /**
     * 获取记录器
     */
    getRecorder(): AccessRecorder;
    /**
     * 设置记录器
     * @param recorder 记录器
     */
    setRecorder(recorder: AccessRecorder): void;
    /**
     * 获取投票器
     */
    getVoter(): AccessVoter;
    /**
     * 设置投票器
     * @param voter 投票器
     */
    setVoter(voter: AccessVoter): void;
    /**
     * 获取存储器
     */
    getStorer(): AccessStorer;
    /**
     * 设置存储器
     * @param storer 存储器
     */
    setStorer(storer: AccessStorer): void;
    /**
     * 获取匹配器
     */
    getMatcher(): AccessMatcher;
    /**
     * 设置匹配器
     * @param matcher 匹配器
     */
    setMatcher(matcher: AccessMatcher): void;
    /**
     * 获取导航器
     */
    getNavigator(): AccessNavigator;
    /**
     * 设置导航器
     * @param navigator 导航器
     */
    setNavigator(navigator: AccessNavigator): void;
    /**
     * 获取父级
     */
    getParent(): AccessContext | undefined;
    /**
     * 设置父级
     * @param parent 父级
     */
    setParent(parent: AccessContext): void;
}
/**
 * 简单上下文
 */
export declare class SimpleContext implements AccessContext {
    /**
     * 记录器
     * @private
     */
    private recorder;
    /**
     * 投票器
     * @private
     */
    private voter;
    /**
     * 存储器
     * @private
     */
    private storer;
    /**
     * 匹配器
     * @private
     */
    private matcher;
    /**
     * 导航器
     * @private
     */
    private navigator;
    /**
     * 父级
     * @private
     */
    private parent?;
    /**
     * 构造函数
     * @param recorder 记录器
     * @param voter 投票器
     * @param storer 存储器
     * @param matcher 匹配器
     * @param navigator 导航器
     */
    constructor(recorder: AccessRecorder, voter: AccessVoter, storer: AccessStorer, matcher: AccessMatcher, navigator: AccessNavigator);
    /**
     * 获取记录器
     */
    getRecorder(): AccessRecorder;
    /**
     * 设置记录器
     * @param recorder 记录器
     */
    setRecorder(recorder: AccessRecorder): void;
    /**
     * 获取投票器
     */
    getVoter(): AccessVoter;
    /**
     * 设置投票器
     * @param voter 投票器
     */
    setVoter(voter: AccessVoter): void;
    /**
     * 获取存储器
     */
    getStorer(): AccessStorer;
    /**
     * 设置存储器
     * @param storer 存储器
     */
    setStorer(storer: AccessStorer): void;
    /**
     * 获取匹配器
     */
    getMatcher(): AccessMatcher;
    /**
     * 设置匹配器
     * @param matcher 匹配器
     */
    setMatcher(matcher: AccessMatcher): void;
    /**
     * 获取导航器
     */
    getNavigator(): AccessNavigator;
    /**
     * 设置导航器
     * @param navigator 导航器
     */
    setNavigator(navigator: AccessNavigator): void;
    /**
     * 获取父级
     */
    getParent(): AccessContext | undefined;
    /**
     * 设置父级
     * @param parent 父级
     */
    setParent(parent?: AccessContext): void;
}
