import { AccessRule, type AccessRuleSchema } from './AccessRule.js';
/**
 * The action is allowed if the authenticated user has a specific role.
 * This is used to enforce role-based access control (RBAC).
 * For example, only users with the "admin" role can perform certain actions.
 */
export interface MatchUserRoleAccessRuleSchema extends AccessRuleSchema {
    type: 'matchUserRole';
    /**
     * The role that the authenticated user must have to access the resource.
     * This is typically a property on the user entity that defines their role.
     *
     * The domain model should annotate this property with the "UserRole" semantic
     * to indicate that it is used for role-based access control.
     */
    role: string[];
}
/**
 * The action is allowed if the authenticated user has a specific role.
 * This is used to enforce role-based access control (RBAC).
 * For example, only users with the "admin" role can perform certain actions.
 */
export declare class MatchUserRoleAccessRule extends AccessRule implements MatchUserRoleAccessRuleSchema {
    readonly type: 'matchUserRole';
    accessor role: string[];
    constructor(state?: Partial<MatchUserRoleAccessRuleSchema>);
    toJSON(): MatchUserRoleAccessRuleSchema;
}
//# sourceMappingURL=MatchUserRole.d.ts.map