/**
 * Suggestions Generator - Final Phase of Living Docs Builder
 *
 * Produces actionable SUGGESTIONS.md with:
 * 1. Summary statistics of documentation status
 * 2. Priority zones based on work item density
 * 3. Immediate actions with specific file paths
 * 4. Gap analysis between modules and documentation
 */
import type { DiscoveryResult } from './discovery.js';
import type { ModuleAnalysis } from './module-analyzer.js';
import type { WorkItemMatchResult } from './workitem-matcher.js';
import type { LivingDocsUserInputs } from '../background/types.js';
/**
 * Documentation status per module
 */
export interface ModuleDocStatus {
    /** Module name */
    moduleName: string;
    /** Module path */
    modulePath: string;
    /** Has README */
    hasReadme: boolean;
    /** Has generated analysis */
    hasAnalysis: boolean;
    /** Doc coverage estimate (0-100) */
    coverage: number;
    /** Work item count */
    workItemCount: number;
    /** Priority level */
    priority: 'critical' | 'high' | 'medium' | 'low';
    /** Status */
    status: 'complete' | 'partial' | 'none';
}
/**
 * Priority zone for focused documentation
 */
export interface PriorityZone {
    /** Zone name (module name) */
    name: string;
    /** Zone path */
    path: string;
    /** Work item count */
    workItems: number;
    /** Documentation status */
    docStatus: 'complete' | 'partial' | 'none';
    /** Suggested action */
    action: string;
    /** Files to focus on */
    focusFiles: string[];
}
/**
 * Immediate action item
 */
export interface ImmediateAction {
    /** Priority (1 = highest) */
    priority: number;
    /** Module name */
    module: string;
    /** Action description */
    action: string;
    /** Specific file paths */
    files: string[];
    /** Reason */
    reason: string;
}
/**
 * Unmatched work item with suggestions (v0.31.0+)
 */
export interface UnmatchedItemSuggestion {
    /** Work item ID */
    id: string;
    /** Work item title */
    title: string;
    /** Feature ID */
    featureId: string;
    /** Area path (if available from ADO) */
    areaPath?: string;
    /** Team (if extracted) */
    team?: string;
    /** Suggested module matches */
    suggestedModules: Array<{
        name: string;
        reason: string;
        confidence: 'high' | 'medium' | 'low';
    }>;
}
/**
 * Suggestions report
 */
export interface SuggestionsReport {
    /** Generation timestamp */
    generatedAt: string;
    /** Summary statistics */
    summary: {
        totalModules: number;
        modulesDocumented: number;
        modulesPartial: number;
        modulesUndocumented: number;
        totalWorkItems: number;
        matchedWorkItems: number;
        coveragePercent: number;
    };
    /** Priority zones */
    priorityZones: PriorityZone[];
    /** Immediate actions */
    immediateActions: ImmediateAction[];
    /** Module status details */
    moduleStatuses: ModuleDocStatus[];
    /** Additional sources processed */
    additionalSources: string[];
    /** Directories not fully analyzed */
    notAnalyzed: Array<{
        path: string;
        reason: string;
        filesSkipped: number;
    }>;
    /** User pain points addressed */
    painPointsAddressed: string[];
    /** Whether this is an umbrella project */
    isUmbrella?: boolean;
    /** Unmatched work items with suggested mappings */
    unmatchedSuggestions?: UnmatchedItemSuggestion[];
    /** Modules without any work items (potential tech debt) */
    orphanedModules?: Array<{
        name: string;
        path: string;
        reason: string;
    }>;
    /** Team-grouped summary for umbrella projects */
    teamSummary?: Map<string, {
        modules: number;
        workItems: number;
        coverage: number;
    }>;
}
/**
 * Generate suggestions from all analysis data
 *
 * Enhanced for umbrella projects (v0.31.0+):
 * - Generates suggestions for unmatched work items
 * - Identifies orphaned modules (tech debt)
 * - Groups suggestions by team
 */
export declare function generateSuggestions(projectPath: string, discovery: DiscoveryResult, moduleAnalyses: Map<string, ModuleAnalysis>, matchResult: WorkItemMatchResult, userInputs: LivingDocsUserInputs): Promise<SuggestionsReport>;
/**
 * Format suggestions report as markdown
 */
export declare function formatSuggestionsMarkdown(report: SuggestionsReport): string;
/**
 * Save suggestions report to disk
 */
export declare function saveSuggestionsReport(projectPath: string, report: SuggestionsReport): Promise<string>;
//# sourceMappingURL=suggestions-generator.d.ts.map