export interface BracketNormalizationStats { unbracketedSegments: number; removedSegments: number; removedParagraphs: number; normalizedParagraphs: number; formattingFallbackCount: number; declarativeRuleApplications: number; declarativeRuleMatchCounts: Record; declarativeRuleMutationCounts: Record; declarativeRuleExpectationFailures: string[]; declarativeRuleExamples: Array<{ rule_id: string; heading: string; before: string; after: string; }>; } export interface DeclarativeParagraphNormalizeRule { id: string; section_heading: string; section_heading_any?: string[]; ignore_heading?: boolean; paragraph_contains: string; paragraph_end_contains?: string; replacements?: Record; trim_unmatched_trailing_bracket?: boolean; expected_min_matches?: number; } export interface DeclarativeNormalizeConfig { paragraph_rules: DeclarativeParagraphNormalizeRule[]; } export interface BracketNormalizationOptions { rules?: DeclarativeParagraphNormalizeRule[]; fieldValues?: Record; blankPlaceholder?: string; } /** * Normalize residual bracket artifacts in generated recipe documents. * * Only operates when declarative rules are provided (via normalize.json). * Without declarative rules, returns zero-change stats (no-op). * Uses formatting-preserving replaceParagraphTextRange for all text mutations. */ export declare function normalizeBracketArtifacts(inputPath: string, outputPath: string, options?: BracketNormalizationOptions): Promise; //# sourceMappingURL=bracket-normalizer.d.ts.map