/**
 * Feature Assembly Agent
 *
 * Combines generated components into complete working features
 * with actions, hooks, routes, and role-based permissions.
 */
import { SubAgent } from "../interfaces/SubAgent";
import { FeatureBundle, FeatureTemplate } from "../../types/feature-bundle";
import { Role } from "../../types/role-permissions";
export interface FeatureAssemblyContext {
    projectPath: string;
    components: string[];
    contextFiles: {
        prd?: string;
        types?: string;
        brand?: string;
        componentList?: string;
    };
    designManifest?: any;
    targetRole: Role;
    featureTemplates: FeatureTemplate[];
    outputPath: string;
}
export interface FeatureAssemblyResult {
    success: boolean;
    features: FeatureBundle[];
    errors: string[];
    warnings: string[];
    metadata: {
        totalFeatures: number;
        totalComponents: number;
        totalActions: number;
        totalHooks: number;
        totalRoutes: number;
        processingTime: number;
    };
}
export declare class FeatureAssemblyAgent implements SubAgent {
    readonly name = "FeatureAssemblyAgent";
    readonly description = "Combines generated components into complete working features";
    readonly personality = "systematic and thorough";
    readonly llmProvider = "hybrid";
    readonly expertise: string[];
    private aiCore;
    private projectPath;
    constructor(projectPath: string);
    run(context: FeatureAssemblyContext): Promise<FeatureAssemblyResult>;
    private analyzeAndGroupComponents;
    private fallbackComponentGrouping;
    private generateFeatureBundle;
    private generateFeatureBundleFromTemplate;
    private generateBasicFeatureBundle;
    private applyRoleBasedPermissions;
    private hasPermissionForRole;
    private generateSupportingFiles;
    private generateActions;
    private generateActionCode;
    private generateHooks;
    private generateHookCode;
    private generateRoutes;
    private generateRouteCode;
    private generateTypes;
    private generateTypesCode;
    private saveFeatureBundles;
    private extractDependencies;
}
//# sourceMappingURL=FeatureAssemblyAgent.d.ts.map