/**
 * Role Permission Mapper
 *
 * Maps features, components, actions, and routes to role-based permissions
 * for the Feature Assembly system.
 */
import { Role, Permission, RoleHierarchy } from "../types/role-permissions";
import { FeatureBundle } from "../types/feature-bundle";
export declare class RolePermissionMapper {
    private roleHierarchy;
    constructor(roleHierarchy: RoleHierarchy);
    /**
     * Map feature to role-based configuration
     */
    mapFeatureToRoles(feature: FeatureBundle): Map<Role, FeatureBundle>;
    /**
     * Map component to permissions for a specific role
     */
    mapComponentToPermissions(component: string, role: Role): Permission[];
    /**
     * Map action to permissions for a specific role
     */
    mapActionToPermissions(action: string, role: Role): Permission[];
    /**
     * Map route to permissions for a specific role
     */
    mapRouteToPermissions(route: string, role: Role): Permission[];
    /**
     * Generate role-based code for a feature
     */
    generateRoleBasedCode(feature: FeatureBundle, role: Role, config: any): string;
    /**
     * Check if a role has permission for a specific action
     */
    hasPermission(role: Role, resource: string, action: string): boolean;
    /**
     * Get all permissions for a role
     */
    getRolePermissions(role: Role): Permission[];
    /**
     * Get inherited permissions for a role
     */
    getInheritedPermissions(role: Role): Permission[];
    /**
     * Create a role-specific feature from a base feature
     */
    private createRoleFeature;
    /**
     * Map component name to resource type
     */
    private mapComponentToResource;
    /**
     * Map action name to resource type
     */
    private mapActionToResource;
    /**
     * Map route path to resource type
     */
    private mapRouteToResource;
    /**
     * Check if a role has permission for a component
     */
    private hasComponentPermission;
    /**
     * Check if a role has permission for an action
     */
    private hasActionPermission;
    /**
     * Check if a role has permission for a hook
     */
    private hasHookPermission;
    /**
     * Check if a role has permission for a route
     */
    private hasRoutePermission;
    /**
     * Apply role-specific restrictions to permissions
     */
    private applyRoleRestrictions;
    /**
     * Generate permission code for a role
     */
    private generatePermissionCode;
    /**
     * Get role definition by name
     */
    private getRoleDefinition;
}
//# sourceMappingURL=rolePermissionMapper.d.ts.map