/**
 * Feature Bundle Manager
 *
 * Manages feature bundles including loading, saving, validation,
 * and operations for the Feature Assembly system.
 */
import { FeatureBundle } from "../types/feature-bundle";
import { Role } from "../types/role-permissions";
export declare class FeatureBundleManager {
    private projectPath;
    private bundlesDir;
    constructor(projectPath: string);
    /**
     * Save a feature bundle to disk
     */
    saveBundle(bundle: FeatureBundle, role?: Role): Promise<void>;
    /**
     * Load a feature bundle from disk
     */
    loadBundle(bundleName: string, role?: Role): Promise<FeatureBundle | null>;
    /**
     * Load all feature bundles for a role
     */
    loadBundlesForRole(role: Role): Promise<FeatureBundle[]>;
    /**
     * Load all feature bundles across all roles
     */
    loadAllBundles(): Promise<Map<Role, FeatureBundle[]>>;
    /**
     * Delete a feature bundle
     */
    deleteBundle(bundleName: string, role?: Role): Promise<void>;
    /**
     * Validate a feature bundle
     */
    validateBundle(bundle: FeatureBundle): {
        valid: boolean;
        errors: string[];
    };
    /**
     * Get bundle summary for a role
     */
    getBundleSummary(role: Role): Promise<{
        role: Role;
        bundles: Array<{
            name: string;
            description: string;
            components: number;
            actions: number;
            hooks: number;
            routes: number;
        }>;
        metadata: {
            totalBundles: number;
            totalComponents: number;
            totalActions: number;
            totalHooks: number;
            totalRoutes: number;
            lastUpdated: string;
        };
    } | null>;
    /**
     * Update bundle summary for a role
     */
    updateBundleSummary(role: Role, bundles: FeatureBundle[]): Promise<void>;
    /**
     * Search bundles by name or description
     */
    searchBundles(query: string, role?: Role): Promise<FeatureBundle[]>;
    /**
     * Get bundles by category
     */
    getBundlesByCategory(category: string, role?: Role): Promise<FeatureBundle[]>;
    /**
     * Export bundles to a file
     */
    exportBundles(outputPath: string, role?: Role): Promise<void>;
    /**
     * Import bundles from a file
     */
    importBundles(inputPath: string, role?: Role): Promise<FeatureBundle[]>;
    /**
     * Clean up old or invalid bundles
     */
    cleanupBundles(): Promise<{
        cleaned: number;
        errors: string[];
    }>;
}
//# sourceMappingURL=featureBundleManager.d.ts.map