/**
 * Task Project-Specific Generator
 *
 * Generates project-specific tasks for user stories from increment tasks.md
 *
 * Key Concepts:
 * - Increment tasks.md contains ALL tasks for ALL projects
 * - Each user story should show ONLY relevant tasks for its project
 * - Tasks are filtered by:
 *   1. User Story ID (via AC-IDs)
 *   2. Project keywords (optional, for multi-project features)
 * - Completion status is preserved from source tasks
 *
 * Example:
 *   Increment tasks.md:
 *     T-001: Setup API endpoint (AC: AC-US1-01) [x]
 *     T-002: Create React component (AC: AC-US1-01) [ ]
 *     T-003: Add DB migration (AC: AC-US1-02) [x]
 *
 *   Backend US-001 tasks:
 *     - [x] T-001: Setup API endpoint
 *     - [x] T-003: Add DB migration
 *
 *   Frontend US-001 tasks:
 *     - [ ] T-002: Create React component
 */
export interface ProjectSpecificTask {
    id: string;
    title: string;
    completed: boolean;
    acIds: string[];
    userStoryIds?: string[];
    project?: string;
    sourceIncrement?: string;
}
export interface TaskReference {
    id: string;
    title: string;
    anchor: string;
    path: string;
    acIds: string[];
}
export interface ProjectContext {
    id: string;
    name: string;
    type: 'backend' | 'frontend' | 'mobile' | 'infrastructure' | 'generic';
    techStack: string[];
    keywords: string[];
}
export declare class TaskProjectSpecificGenerator {
    private projectRoot;
    constructor(projectRoot?: string);
    /**
     * Generate project-specific tasks for a user story
     *
     * Filters increment tasks by:
     * 1. User Story ID (via AC-IDs)
     * 2. Project keywords (optional)
     * 3. Preserves completion status
     */
    generateProjectSpecificTasks(incrementId: string, userStoryId: string, projectContext?: ProjectContext): Promise<ProjectSpecificTask[]>;
    /**
     * Load all tasks from increment tasks.md with completion status
     */
    private loadIncrementTasks;
    /**
     * Filter tasks by User Story
     *
     * Uses direct User Story IDs from **User Story**: field (NEW approach).
     * Falls back to AC-ID extraction for backward compatibility.
     *
     * Example:
     *   User Story: US-001
     *   Task **User Story**: US-001, US-003
     *   Match: Direct match
     */
    private filterTasksByUserStory;
    /**
     * Filter tasks by project keywords (optional, for multi-project features)
     *
     * Uses keyword matching to determine if a task belongs to a project.
     * Example:
     *   Project: backend
     *   Keywords: ['api', 'database', 'backend']
     *   Task: "Setup API endpoint"
     *   Match: "api" found in title
     */
    private filterTasksByProject;
    /**
     * Convert TaskReference to ProjectSpecificTask (with completion status)
     *
     * This is a helper method for migrating existing code that uses TaskReference.
     * It reads the increment tasks.md to extract completion status.
     */
    enrichTaskReferencesWithStatus(taskReferences: TaskReference[], incrementId: string): Promise<ProjectSpecificTask[]>;
    /**
     * Format tasks as markdown checkboxes for user story files
     */
    formatTasksAsMarkdown(tasks: ProjectSpecificTask[]): string;
    /**
     * Extract task checkboxes from user story markdown
     *
     * Used for three-permission sync (reading task state from user story file)
     */
    parseTasksFromMarkdown(content: string): ProjectSpecificTask[];
    /**
     * Update task checkboxes in user story markdown
     *
     * Used for three-permission sync (updating user story file with new task state)
     */
    updateTaskCheckboxes(content: string, taskUpdates: Map<string, boolean>): string;
}
//# sourceMappingURL=task-project-specific-generator.d.ts.map