/** Une constante ou une donnée effectivement utilisée par un calcul. */ export interface Source { cle: string; valeur: number | string; source: string; date: string; } export interface Resultat { sorties: S; /** Tout coefficient et tout prix effectivement utilisé. */ sources: Source[]; /** Toute donnée manquante, toute valeur par défaut appliquée. */ avertissements: string[]; /** Étiquette du paquet (`vX.Y.Z`). */ version: string; } export interface Moteur { /** 'autonomie.eau', 'commun.geometrie', … */ id: string; calculer(entrees: E, donnees: D): Resultat; } /** * Collecteur de sources et d'avertissements d'un calcul. Une source est * enregistrée une fois par clé (la première valeur gagne) ; un avertissement * une fois par texte. Objet interne, sans I/O. */ export declare class Trace { private readonly sources; private readonly avertissements; source(cle: string, valeur: number | string, source: string, date: string): void; avertit(texte: string): void; /** Verse dans ce collecteur les sources et avertissements d'un autre résultat. */ absorbe(autre: { sources: Source[]; avertissements: string[]; }): void; resultat(sorties: S, version: string): Resultat; }