import type { FranceLegalMentions } from "../types/invoice.js"; /** * Les phrases par défaut, SANS leur marqueur — GPR-1361. * * ⭐ Exportées pour l'écran de réglages, qui les affiche en placeholder : un * champ vide n'est pas « rien », c'est « la phrase statutaire ». Montrer * laquelle est la seule façon honnête de présenter le champ. * * ⛔ Sans le marqueur, délibérément. Le placeholder est fait pour être copié et * modifié ; l'inclure inviterait l'émetteur à le recoller dans son texte, ce que * `BR-FR-06` refuse. getpeppr écrit le marqueur, l'émetteur écrit la phrase. */ export declare const FRANCE_LEGAL_MENTION_DEFAULTS: Readonly>; /** Render the three mandatory notes, applying the issuer's overrides. */ export declare function buildFranceLegalMentions(overrides?: FranceLegalMentions): string[]; /** A problem with the caller's French notes, in the shape a route can surface. */ export interface FranceNoteProblem { /** The socle rule the final document would break. */ rule: "BR-FR-06" | "BR-FR-05"; /** * Sentence naming what to change, safe to return to the caller verbatim. * * ⛔ SURFACE-NEUTRAL, deliberately. It says what is wrong and what to do, and * names no field: the same validator runs behind `POST /v1/invoices` and * behind the settings form, and those two callers do not have the same fields. * A message naming `france.legalMentions` is exact for an API caller and * meaningless to someone looking at three text boxes — measured on the preview * of PR #1206, where the form told a person to edit a `note` it does not have. * * ⭐ A surface that CAN be more specific appends its own sentence, using * `marker` below. That is why the marker travels as data rather than only * inside prose. */ message: string; /** The marker at fault, e.g. `#PMD#`. Lets a surface word its own advice. */ marker: string; /** Whether getpeppr writes this marker itself — `#TXD#` is the caller's own. */ ours: boolean; } /** * Judge the notes a French document would actually carry, before it is built. * * ⛔ Takes BOTH the caller's `note` and the overrides, because the schematron * joins every `cbc:Note` before counting. Judging the overrides alone is what * let the gate's two reproductions through. * * ⚠️ `unknown` on purpose. This runs on a parsed request body, where a field * typed `string` can be a number, an array or an object. */ export declare function validateFranceNotes(input: { note?: unknown; legalMentions?: unknown; }): FranceNoteProblem[]; //# sourceMappingURL=france-legal-mentions.d.ts.map