/**
 * Jira Incremental Mapper - Granular Work Item Management
 *
 * Supports adding individual Jira items (Story, Bug, Task) to increments:
 * - Add single story/bug/task to existing increment
 * - Create increment from cherry-picked items across multiple Epics
 * - Handle different work item types appropriately
 * - Update RFC documentation when items are added
 */
import { JiraClient } from './jira-client.js';
import { Logger } from '../../utils/logger.js';
/**
 * Set the logger for this module
 */
export declare function setJiraIncrementalMapperLogger(logger: Logger): void;
export interface WorkItem {
    type: 'story' | 'bug' | 'task' | 'epic';
    id: string;
    jira_key: string;
    jira_id: string;
    title: string;
    description: string;
    status: 'planning' | 'in-progress' | 'completed';
    priority: 'P1' | 'P2' | 'P3';
    assignee?: string;
    labels?: string[];
    parent_epic?: {
        key: string;
        title: string;
    };
}
export interface IncrementWorkItems {
    stories: WorkItem[];
    bugs: WorkItem[];
    tasks: WorkItem[];
}
/**
 * Configuration options for JiraIncrementalMapper
 * Domain should come from ConfigManager (config.json), not process.env
 */
export interface JiraIncrementalMapperConfig {
    /** JIRA domain (e.g., "company.atlassian.net") - from config.json */
    domain: string;
}
export declare class JiraIncrementalMapper {
    private client;
    private projectRoot;
    private rfcGenerator;
    private domain;
    private targetProjectId?;
    /**
     * Create a JiraIncrementalMapper
     *
     * @param client - JiraClient instance
     * @param config - Configuration with domain from ConfigManager
     * @param projectRoot - Project root path
     * @param targetProjectId - Target SpecWeave project ID for per-project collision prevention
     */
    constructor(client: JiraClient, config: JiraIncrementalMapperConfig, projectRoot?: string, targetProjectId?: string);
    /**
     * Add a specific Jira item (Story, Bug, Task) to an existing increment
     */
    addItemToIncrement(incrementId: string, jiraKey: string): Promise<{
        success: boolean;
        message: string;
        workItem?: WorkItem;
    }>;
    /**
     * Create new increment from multiple Jira items (cherry-picked)
     */
    createIncrementFromItems(title: string, jiraKeys: string[]): Promise<{
        success: boolean;
        incrementId: string;
        message: string;
    }>;
    /**
     * List all work items in an increment grouped by type
     */
    getIncrementWorkItems(incrementId: string): IncrementWorkItems;
    private mapJiraTypeToWorkItemType;
    private createWorkItemFromIssue;
    private addWorkItemToSpec;
    private addWorkItemToTasks;
    private updateRFCWithWorkItem;
    private generateSpecFromWorkItems;
    private generateTasksFromWorkItems;
    private generateRFCFromWorkItems;
    private getNextIncrementId;
    private ensureDir;
    private parseMarkdownWithFrontmatter;
    private serializeMarkdownWithFrontmatter;
    private extractTextFromJiraDescription;
    private mapJiraStatusToSpecWeave;
    private mapJiraPriorityToSpecWeave;
    private slugify;
}
//# sourceMappingURL=jira-incremental-mapper.d.ts.map