import { type AccessPermissions, type AccessResource, type ResourceLabels, type ResourcePatterns } from '../access';
import type { AccessBuilder } from './builder';
/**
 * 访问资源配置
 */
export type AccessResourceConfig = {
    /**
     * 模式集合
     */
    readonly patterns: ResourcePatterns;
    /**
     * 权限集合
     */
    readonly permissions: AccessPermissions;
    /**
     * 标签集合
     */
    readonly labels?: ResourceLabels;
    /**
     * 基础路径
     */
    readonly basename?: string;
};
/**
 * 访问资源配置集合
 */
export type AccessResourceConfigs = AccessResourceConfig[];
/**
 * 访问资源构建器
 */
export declare class AccessResourceBuilder implements AccessBuilder<AccessResource> {
    /**
     * 模式集合
     * @private
     */
    private readonly _patterns;
    /**
     * 权限集合
     * @private
     */
    private readonly _permissions;
    /**
     * 标签集合
     * @private
     */
    private readonly _labels;
    /**
     * 基础路径
     * @private
     */
    private _basename?;
    /**
     * 添加模式集合
     * @param patterns 模式集合
     */
    patterns(...patterns: ResourcePatterns): AccessResourceBuilder;
    /**
     * 添加权限集合
     * @param permissions 权限集合
     */
    permissions(...permissions: AccessPermissions): AccessResourceBuilder;
    /**
     * 添加标签集合
     * @param labels 标签集合
     */
    labels(...labels: ResourceLabels): AccessResourceBuilder;
    /**
     * 标记匿名的权限
     */
    anonymous(): AccessResourceBuilder;
    /**
     * 标记已认证权限
     */
    authenticated(): AccessResourceBuilder;
    /**
     * 标记已授权权限
     */
    authorized(): AccessResourceBuilder;
    /**
     * 标记已签名标签
     */
    signatured(): AccessResourceBuilder;
    /**
     * 标记始终签名标签
     */
    alwaysSignature(): AccessResourceBuilder;
    /**
     * 设置基础路径
     * @param basename 基础路径
     */
    basename(basename: string): AccessResourceBuilder;
    /**
     * 通过配置添加相关
     * @param config 资源配置
     */
    config(config: AccessResourceConfig): AccessResourceBuilder;
    /**
     * 构建
     */
    build(): AccessResource;
}
