/**
 * UseCaseParser - Parse use case documents to extract testable scenarios
 *
 * Parses use case markdown documents following the standard template format
 * and extracts structured test scenarios for test generation.
 *
 * @module src/testing/generators/use-case-parser
 */
export interface UseCaseStep {
    number: number;
    actor: 'user' | 'system' | 'external';
    action: string;
    expectedResult?: string;
}
export interface UseCaseScenario {
    id: string;
    name: string;
    type: 'main' | 'extension' | 'exception';
    preconditions: string[];
    steps: UseCaseStep[];
    postconditions: string[];
    extensionOf?: string;
    triggeredAt?: number;
}
export interface UseCaseDocument {
    id: string;
    title: string;
    actor: string;
    description: string;
    preconditions: string[];
    postconditions: string[];
    mainScenario: UseCaseScenario;
    extensions: UseCaseScenario[];
    exceptions: UseCaseScenario[];
    nfrs: string[];
    relatedUseCases: string[];
    priority: 'critical' | 'high' | 'medium' | 'low';
}
export interface ParseResult {
    success: boolean;
    document?: UseCaseDocument;
    errors: string[];
    warnings: string[];
}
export declare class UseCaseParser {
    private readonly MAIN_SCENARIO_PATTERN;
    private readonly EXTENSION_PATTERN;
    private readonly EXCEPTION_PATTERN;
    private readonly STEP_PATTERN;
    private readonly PRECONDITION_PATTERN;
    private readonly POSTCONDITION_PATTERN;
    private readonly NFR_REF_PATTERN;
    private readonly UC_REF_PATTERN;
    /**
     * Parse a use case document from file
     *
     * @param filePath - Path to use case markdown file
     * @returns Parse result with structured document
     */
    parseFile(filePath: string): Promise<ParseResult>;
    /**
     * Parse use case content from string
     *
     * @param content - Markdown content
     * @param sourceName - Source identifier for error messages
     * @returns Parse result with structured document
     */
    parseContent(content: string, sourceName?: string): ParseResult;
    /**
     * Parse multiple use case files from a directory
     *
     * @param dirPath - Directory containing use case files
     * @returns Array of parse results
     */
    parseDirectory(dirPath: string): Promise<Map<string, ParseResult>>;
    /**
     * Extract testable scenarios from a use case document
     *
     * @param document - Parsed use case document
     * @returns Array of all testable scenarios
     */
    extractTestableScenarios(document: UseCaseDocument): UseCaseScenario[];
    private parseMainScenario;
    private parseExtensions;
    private parseExceptions;
    private parseSteps;
    private parseExtensionSteps;
    private parseBulletList;
    private extractSectionContent;
    private extractReferences;
    private extractIdFromFilename;
    private normalizePriority;
    private createEmptyScenario;
}
//# sourceMappingURL=use-case-parser.d.ts.map