import type { FieldSpec, ExtractOptions, ExtractionReport } from "./types.js"; /** Sentinel: the value was present but could not be coerced to the declared kind/vocabulary. */ export declare const MALFORMED: unique symbol; export declare function coerceValue(raw: string | null, spec: FieldSpec, opts: ExtractOptions, fieldPath: string, report: ExtractionReport): unknown | typeof MALFORMED; /** * Phase B (generalized `@default`): PURE coercion of a metadata-sourced string to the field's * scalar kind, with NO side effects (no normalizer/onField hooks, no clamp logging) — the value * originates from metadata, not the model response. Returns the coerced value or the MALFORMED * sentinel. INT/LONG accept an integer or a truncatable finite number; DOUBLE accepts any finite * number; BOOLEAN accepts `true|false|yes|no|1|0`; STRING (and any other kind) passes through * verbatim. Mirrors Java `Coerce.scalar` (parse semantics of {@link coerceValue} without its * range-clamp / report machinery). */ export declare function scalarCoerce(raw: string | null, spec: FieldSpec): unknown | typeof MALFORMED; //# sourceMappingURL=coerce.d.ts.map