/** * Input Normalizer * * Normaliza diferentes formatos de entrada para o formato NormalizedInput. * Integra com o FeatureAnalyzer para inferir informações de texto livre. */ import { InputNormalizationResult, TechContext } from '../../shared/types/index.js'; import { EpicInputNormalizationResult } from './parsers/epic-parser.js'; /** * Opções de normalização */ export interface NormalizerOptions { defaultTechContext?: Partial; inferTechContext?: boolean; validateCriteria?: boolean; /** Diretório do projeto para inferir tech stack */ projectPath?: string; /** Forçar análise mesmo para inputs estruturados */ forceAnalysis?: boolean; } /** * Interface para parsers de input */ export interface InputParser { canParse(content: string, extension: string): boolean; parse(content: string, options?: NormalizerOptions): InputNormalizationResult; } /** * Parser para JSON */ export declare class JsonParser implements InputParser { canParse(_content: string, extension: string): boolean; parse(content: string, options?: NormalizerOptions): InputNormalizationResult; } /** * Parser para YAML */ export declare class YamlParser implements InputParser { canParse(_content: string, extension: string): boolean; parse(content: string, options?: NormalizerOptions): InputNormalizationResult; } /** * Parser para Markdown (user stories) * Agora usa FeatureAnalyzer para extrair informações estruturadas */ export declare class MarkdownParser implements InputParser { canParse(content: string, extension: string): boolean; parse(content: string, options?: NormalizerOptions): InputNormalizationResult; } /** * Parser para texto simples (user story format) * Agora usa FeatureAnalyzer para inferir toda a estrutura */ export declare class PlainTextParser implements InputParser { canParse(_content: string, extension: string): boolean; parse(content: string, options?: NormalizerOptions): InputNormalizationResult; } /** * Classe principal do normalizador */ export declare class InputNormalizer { private parsers; private options; constructor(options?: NormalizerOptions); /** * Registra um parser customizado */ registerParser(parser: InputParser): void; /** * Normaliza conteúdo */ normalize(content: string, extension?: string): InputNormalizationResult; /** * Normaliza arquivo */ normalizeFile(filePath: string): InputNormalizationResult; /** * Normaliza documento de épico e retorna resultado completo */ normalizeEpic(content: string): EpicInputNormalizationResult; /** * Normaliza arquivo de épico */ normalizeEpicFile(filePath: string): EpicInputNormalizationResult; /** * Verifica se um conteúdo é um documento de épico */ isEpicDocument(content: string, extension?: string): boolean; } /** * Cria um normalizador de input */ export declare function createInputNormalizer(options?: NormalizerOptions): InputNormalizer; /** * Normaliza input de arquivo (função de conveniência) */ export declare function normalizeFromFile(filePath: string, options?: NormalizerOptions): InputNormalizationResult; /** * Normaliza input de string (função de conveniência) */ export declare function normalizeFromString(content: string, format?: 'json' | 'yaml' | 'markdown' | 'text', options?: NormalizerOptions): InputNormalizationResult; //# sourceMappingURL=input-normalizer.d.ts.map