/**
 * TDD Task Template Generator
 *
 * Generates tasks in RED-GREEN-REFACTOR structure for TDD mode,
 * or standard implementation-first tasks for other modes.
 *
 * @module tdd/task-template-generator
 * @see {@link https://verified-skill.com/docs/tdd} TDD Documentation
 */
import type { TDDPhase, TDDTask, TDDTaskTriplet, UserStoryContext, TDDTaskGenerationOptions, TDDTaskGenerationResult } from './types.js';
/** Phase marker constants for consistent task naming */
export declare const PHASE_MARKERS: {
    readonly RED: "[RED]";
    readonly GREEN: "[GREEN]";
    readonly REFACTOR: "[REFACTOR]";
};
/** Template strings for TDD task descriptions */
export declare const TDD_TEMPLATES: {
    readonly RED: {
        readonly titlePrefix: "Write failing test for";
        readonly description: (feature: string) => string;
        readonly testPlan: {
            readonly given: (feature: string) => string;
            readonly when: "Run npm test";
            readonly then: "Test FAILS with clear assertion message";
        };
    };
    readonly GREEN: {
        readonly titlePrefix: "Implement minimal code for";
        readonly description: (feature: string, redTaskId: string) => string;
        readonly testPlan: {
            readonly given: (redTaskId: string) => string;
            readonly when: "Implement minimal code, run npm test";
            readonly then: "Test PASSES (green)";
        };
    };
    readonly REFACTOR: {
        readonly titlePrefix: "Improve";
        readonly titleSuffix: "code quality";
        readonly description: (feature: string, greenTaskId: string) => string;
        readonly testPlan: {
            readonly given: (redTaskId: string) => string;
            readonly when: "Refactor code, run npm test";
            readonly then: "Test STILL passes (green)";
        };
    };
};
/**
 * Generate tasks based on test mode configuration
 *
 * @param options - Task generation options including testMode
 * @returns Generated tasks and triplets (for TDD mode)
 */
export declare function generateTDDTasks(options: TDDTaskGenerationOptions): TDDTaskGenerationResult;
/**
 * Options for generating a single task triplet
 */
interface TripletOptions {
    featureName: string;
    userStory: UserStoryContext;
    acId: string;
    startingTaskNumber: number;
}
/**
 * Generate a complete RED-GREEN-REFACTOR task triplet for TDD workflow.
 *
 * @param options - Options for triplet generation
 * @param options.featureName - Human-readable feature name
 * @param options.userStory - User story context with ACs
 * @param options.acId - Acceptance criteria ID being satisfied
 * @param options.startingTaskNumber - Starting task number (triplet uses N, N+1, N+2)
 * @returns Complete triplet with RED, GREEN, and REFACTOR tasks
 *
 * @example
 * ```typescript
 * const triplet = generateTaskTriplet({
 *   featureName: 'user login',
 *   userStory: { id: 'US-001', ... },
 *   acId: 'AC-US1-01',
 *   startingTaskNumber: 1,
 * });
 * // Returns { redTask: T-001, greenTask: T-002, refactorTask: T-003 }
 * ```
 */
export declare function generateTaskTriplet(options: TripletOptions): TDDTaskTriplet;
/**
 * Format a TDD task as Markdown for inclusion in tasks.md.
 *
 * @param task - The TDD task to format
 * @returns Formatted markdown string
 *
 * @example
 * ```typescript
 * const markdown = formatTaskAsMarkdown(task);
 * // Returns:
 * // ### T-001: [RED] Write failing test for user login
 * // **User Story**: US-001
 * // **Satisfies ACs**: AC-US1-01
 * // ...
 * ```
 */
export declare function formatTaskAsMarkdown(task: TDDTask): string;
/**
 * Parse TDD phase from task title by detecting phase markers.
 *
 * @param title - Task title containing phase marker
 * @returns The detected TDD phase or null if not a TDD task
 *
 * @example
 * ```typescript
 * parsePhaseFromTask('[RED] Write failing test')  // 'RED'
 * parsePhaseFromTask('[GREEN] Implement code')    // 'GREEN'
 * parsePhaseFromTask('Regular task')              // null
 * ```
 */
export declare function parsePhaseFromTask(title: string): TDDPhase | null;
export {};
//# sourceMappingURL=task-template-generator.d.ts.map