/**
 * ADR-PIPELINE-067: Financial Claim Extractor
 *
 * Parses rendered executive markdown and returns a structured list of
 * FinancialClaim records. Used by the cross-document consistency runner to
 * compare dollar figures, timelines, and scope labels across documents.
 *
 * Pure functions. Regex-based — no LLM calls.
 *
 * Renderers can short-circuit extraction by emitting an HTML comment tag
 * immediately before the figure:
 *
 *   <!-- fcv:kind=investment scope=pilot -->
 *   **Pilot investment:** $1.0M–$1.4M
 */
export type FinancialClaimDocument = 'executive-summary' | 'decision-memo' | 'roadmap' | 'business-case' | 'risk-register' | 'financial-analysis' | 'unknown';
export type FinancialClaimKind = 'investment' | 'savings' | 'timeline' | 'headcount' | 'roi' | 'npv';
export type FinancialClaimScope = 'pilot' | 'phase-1' | 'phase-2' | 'phase-3' | 'full-program' | 'unscoped';
export type FinancialClaimUnit = 'USD' | 'weeks' | 'months' | 'years' | 'count' | 'percent';
export interface FinancialClaim {
    readonly document: FinancialClaimDocument;
    readonly section: string;
    readonly kind: FinancialClaimKind;
    readonly scope: FinancialClaimScope;
    readonly rangeLow?: number;
    readonly rangeHigh?: number;
    readonly pointValue?: number;
    readonly unit: FinancialClaimUnit;
    readonly rawText: string;
    readonly line: number;
    /** True when the claim was pulled from an explicit fcv: HTML comment tag. */
    readonly tagged: boolean;
    /**
     * ADR-PIPELINE-073: when the tag carried a `doc=` field, this holds its
     * value. FCR-012 fires when this disagrees with the enclosing document.
     */
    readonly docTag?: FinancialClaimDocument;
    /**
     * ADR-PIPELINE-096 D3: when the tag carried a `src=` field, this holds its
     * value (e.g. "costops/forecast", "unit-economics.json", "heuristic",
     * "unavailable"). FCR-013 uses this to detect heuristic-fallback regression
     * (when a canonical agent succeeded but the renderer used the heuristic
     * anyway). Absent on pre-D3 documents.
     */
    readonly srcTag?: string;
}
/**
 * ADR-PIPELINE-073: Documents that MUST carry authoritative fcv tags on
 * every money figure. Untagged money figures in these docs fire FCR-011.
 * Other documents (narrative memos, agent output) continue to use
 * proximity-based scope detection as a fallback.
 */
export declare const EXPECTS_TAGS: ReadonlySet<FinancialClaimDocument>;
/**
 * Parse a single currency token like "$1.2M", "$600K", "$1,200,000",
 * "USD 1.2M", or "1.2 million dollars". Returns NaN when the input does not
 * look like a currency amount.
 */
export declare function parseCurrency(token: string): number;
/** ADR-PIPELINE-073: count fcv tags in a document body. */
export declare function countFcvTags(body: string): number;
/**
 * ADR-PIPELINE-089 §4: extract the set of fcv tag *keys* (kind/scope/doc
 * tuples) from a document body. Used by the relaxed tag-survival check,
 * which asserts set-containment of mandatory keys rather than raw count
 * parity (which penalized LLMs for legitimate tag deduplication).
 *
 * A tag without any recognized kind/scope/doc contributes an empty string;
 * duplicates are collapsed (Set). Callers comparing skeleton ⊆ synthesized
 * check `missing = [...skeletonKeys].filter(k => !synthesizedKeys.has(k))`.
 */
export declare function fcvTagKeys(body: string): Set<string>;
/**
 * ADR-PIPELINE-073: emit an fcv HTML comment tag. Used by renderers.
 * Exported here (not in simulation-renderers) so the extractor and the
 * renderer speak the same grammar.
 */
export declare function fcvTag(kind: FinancialClaimKind, scope: FinancialClaimScope, doc: FinancialClaimDocument, source?: string): string;
/**
 * Extract FinancialClaim records from a markdown document. The document name
 * is recorded on every claim and becomes the primary key for
 * cross-document rule evaluation.
 *
 * Scoping heuristic:
 *   1. If an HTML fcv: tag precedes the figure (same line or prior line),
 *      use its declared kind/scope verbatim.
 *   2. Otherwise scan a ±60 char window around the figure for scope words
 *      ("pilot", "phase 1", "full program", ...).
 */
export declare function extractClaims(markdown: string, document: FinancialClaimDocument): FinancialClaim[];
//# sourceMappingURL=financial-claim-extractor.d.ts.map