/**
 * Role-Based Generator
 *
 * Generates features for different roles using admin-first approach.
 * Admin features are generated first, then user/guest features are
 * derived as subsets with appropriate permissions.
 */
import { SubAgent } from "../interfaces/SubAgent";
import { FeatureBundle } from "../../types/feature-bundle";
import { Role, RoleHierarchy } from "../../types/role-permissions";
export interface RoleBasedGenerationContext {
    projectPath: string;
    adminFeatures: FeatureBundle[];
    targetRoles: Role[];
    roleHierarchy: RoleHierarchy;
    outputPath: string;
}
export interface RoleBasedGenerationResult {
    success: boolean;
    roleFeatures: Map<Role, FeatureBundle[]>;
    errors: string[];
    warnings: string[];
    metadata: {
        totalRoles: number;
        totalFeatures: number;
        processingTime: number;
    };
}
export declare class RoleBasedGenerator implements SubAgent {
    readonly name = "RoleBasedGenerator";
    readonly description = "Generates role-based feature adaptations";
    readonly personality = "adaptive and security-focused";
    readonly llmProvider = "hybrid";
    readonly expertise: string[];
    private aiClient;
    private projectPath;
    constructor(projectPath: string);
    run(context: RoleBasedGenerationContext): Promise<RoleBasedGenerationResult>;
    private sortRolesByHierarchy;
    private generateRoleFeatures;
    private generateRoleFeature;
    private filterComponentsForRole;
    private hasPermissionForRole;
    private applyRoleRestrictions;
    private filterDependenciesForRole;
    private saveRoleFeatures;
    /**
     * Generate a default role hierarchy
     */
    static createDefaultRoleHierarchy(): RoleHierarchy;
}
//# sourceMappingURL=RoleBasedGenerator.d.ts.map