import type { Moteur, Resultat } from '../commun/contrat.js'; import { Trace } from '../commun/contrat.js'; import { type TableCoefficients } from '../commun/coefficients.js'; import type { Contexte } from '../commun/contexte.js'; import type { AlgoConfig, Autodiag, Axe, Option, Poste, PosteResultat, Statut } from './noyau/types.js'; import { type DetailAlim, type DetailEau, type DetailEnergie } from './taux.js'; export interface EntreesAxe { autodiag: Autodiag; /** Budget alloué à cet axe (EUR HT). */ budget_axe: number; /** Contexte climatique (moteur `commun.contexte`). */ contexte: Contexte; } export interface DonneesAutonomie { postes: Poste[]; options: Option[]; algo_config: AlgoConfig; /** Table de coefficients ; par défaut la table harmonisée du paquet. */ coefficients?: TableCoefficients; } export interface SortiesAxe { axe: Axe; postes: PosteResultat[]; /** Codes des typologies retenues, dans l'ordre des postes. */ typologies: string[]; sous_total_eur_ht: number; budget_alloue: number; ecart_budget_pct: number; status: Statut; message_status?: string; /** Journal des couplages (FORCE / MANQUANT / WARN / CONFLIT). */ couplages: string[]; /** Taux de couverture de l'axe en %, null si non calculable. */ taux_couverture: number | null; taux_detail: DetailEau | DetailEnergie | DetailAlim | null; } /** Enregistre les clés de coefficients lues pendant un calcul (Proxy en lecture seule). */ export declare function enregistreLectures(table: TableCoefficients): { table: TableCoefficients; lues: Set; }; /** Ajoute aux sources les coefficients lus et les prix des typologies retenues. */ export declare function traceSelection(trace: Trace, coefficients: TableCoefficients, lues: Set, postes: PosteResultat[], options: Option[], couplages: string[]): void; export declare function calculeAxe(axe: Axe, entrees: EntreesAxe, donnees: DonneesAutonomie): Resultat; export declare function moteurAxe(axe: Axe, id: string): Moteur;