import { type AccessContext, type AccessMatcher, type AccessNavigator, type AccessRecorder, type AccessResource, type AccessStorer, type AccessValidator, type AccessVoter } from '../access';
import type { NavigateFunction } from '../bridge';
import type { AccessBuilder } from './builder';
import { AccessMatcherBuilder } from './matcher';
import { AccessNavigatorBuilder } from './navigator';
import { AccessRecorderBuilder } from './recorder';
import { AccessResourceBuilder } from './resource';
import { AccessStorerBuilder } from './storer';
import { AccessVoterBuilder } from './voter';
/**
 * 访问上下文构建器
 */
export declare class AccessContextBuilder implements AccessBuilder<AccessContext> {
    /**
     * 记录器
     * @private
     */
    private _recorder?;
    /**
     * 投票器
     * @private
     */
    private _voter?;
    /**
     * 存储器
     * @private
     */
    private _storer?;
    /**
     * 匹配器
     * @private
     */
    private _matcher?;
    /**
     * 导航器
     * @private
     */
    private _navigator?;
    /**
     * 层级
     * @private
     */
    private _hierarchy?;
    /**
     * 认证验证器
     * @private
     */
    private _validator?;
    /**
     * 资源集合
     * @private
     */
    private readonly _resources;
    /**
     * 导航函数
     * @private
     */
    private _navigate?;
    /**
     * 设置记录器
     * @param recorder 记录器
     */
    recorder(recorder: AccessRecorder | ((builder: AccessRecorderBuilder) => AccessRecorder)): AccessContextBuilder;
    /**
     * 设置投票器
     * @param voter 投票器或投票构建器
     */
    voter(voter: AccessVoter | ((builder: AccessVoterBuilder) => AccessVoter)): AccessContextBuilder;
    /**
     * 设置存储器
     * @param storer 存储器或存储构建器
     */
    storer(storer: AccessStorer | ((builder: AccessStorerBuilder) => AccessStorer)): AccessContextBuilder;
    /**
     * 设置匹配器
     * @param matcher 匹配器或匹配构建器
     */
    matcher(matcher: AccessMatcher | ((builder: AccessMatcherBuilder) => AccessMatcher)): AccessContextBuilder;
    /**
     * 设置导航器
     * @param navigator 导航器或导航构建器
     */
    navigator(navigator: AccessNavigator | ((builder: AccessNavigatorBuilder) => AccessNavigator)): AccessContextBuilder;
    /**
     * 设置层级
     * @param hierarchy 层级：a>b;b>c;c>d;e>f;f>g
     */
    hierarchy(hierarchy: string): AccessContextBuilder;
    /**
     * 设置认证验证器
     * @param validator 认证验证器
     */
    validator(validator: AccessValidator): AccessContextBuilder;
    /**
     * 添加资源
     * @param builder 资源构建器
     */
    resource(builder: (builder: AccessResourceBuilder) => AccessResource): AccessContextBuilder;
    /**
     * 设置导航函数
     * @param navigate 导航函数
     */
    navigate(navigate: NavigateFunction): AccessContextBuilder;
    /**
     * 默认资源集合
     */
    drs(): AccessContextBuilder;
    /**
     * 构建
     */
    build(): AccessContext;
}
