/**
 * Project Mapper - Intelligent User Story to Project Classification
 *
 * Analyzes user story content, tech stack mentions, and component architecture
 * to intelligently map user stories to the correct projects (FE, BE, MOBILE, etc.)
 *
 * @module project-mapper
 */
export interface ProjectMapping {
    projectId: string;
    confidence: number;
    reasoning: string[];
}
export interface UserStory {
    id: string;
    title: string;
    description: string;
    acceptanceCriteria: string[];
    technicalContext?: string;
}
export interface ProjectRule {
    id: string;
    name: string;
    keywords: string[];
    techStack: string[];
    componentTypes: string[];
    excludeKeywords?: string[];
}
/**
 * Project mapper configuration
 */
export interface ProjectMapperConfig {
    /**
     * Minimum confidence threshold (0.0-1.0) for primary project match
     * Default: 0.3 (30%)
     *
     * Lower values (0.15-0.2) work better for business-focused specs
     * Higher values (0.4-0.5) work better for tech-focused specs
     */
    confidenceThreshold?: number;
    /**
     * Custom project rules (overrides default rules)
     */
    customRules?: ProjectRule[];
}
/**
 * Default project mapping rules
 * These can be customized via .specweave/config.json
 */
export declare const DEFAULT_PROJECT_RULES: ProjectRule[];
/**
 * Analyze user story content and map to projects
 *
 * @param userStory User story to analyze
 * @param projectRules Project mapping rules (defaults to DEFAULT_PROJECT_RULES)
 * @returns Array of project mappings sorted by confidence (highest first)
 */
export declare function mapUserStoryToProjects(userStory: UserStory, projectRules?: ProjectRule[]): ProjectMapping[];
/**
 * Determine primary project for a user story
 * (highest confidence mapping)
 *
 * @param userStory User story to analyze
 * @param projectRules Project mapping rules
 * @param config Optional configuration (confidence threshold, custom rules)
 * @returns Primary project mapping or null if no confident match
 */
export declare function getPrimaryProject(userStory: UserStory, projectRules?: ProjectRule[], config?: ProjectMapperConfig): ProjectMapping | null;
/**
 * Split spec into project-specific specs based on user story mappings
 *
 * @param userStories Array of user stories
 * @param projectRules Project mapping rules
 * @returns Map of projectId → user stories
 */
export declare function splitSpecByProject(userStories: UserStory[], projectRules?: ProjectRule[]): Map<string, UserStory[]>;
/**
 * Suggest JIRA item type hierarchy based on user story scope
 *
 * @param userStory User story to analyze
 * @returns Suggested JIRA item type (Epic, Story, Task, Subtask)
 */
export declare function suggestJiraItemType(userStory: UserStory): 'Epic' | 'Story' | 'Task' | 'Subtask';
/**
 * Format project mapping report (for display to user)
 *
 * @param userStory User story
 * @param mappings Project mappings
 * @returns Formatted markdown report
 */
export declare function formatProjectMappingReport(userStory: UserStory, mappings: ProjectMapping[]): string;
//# sourceMappingURL=project-mapper.d.ts.map