import type { Moteur, Resultat } from '../commun/contrat.js'; import type { Contexte, LigneClimat } from '../commun/contexte.js'; import { type DonneesAutonomie, type SortiesAxe } from './axe.js'; import { type AxesActifs } from './noyau/axes-actifs.js'; import type { Autodiag, Axe, PoidsAxes, Statut } from './noyau/types.js'; export interface EntreesIntegrateur { autodiag: Autodiag; budget_total: number; /** 'global' = pipeline d'origine (calculs) ; 'par_axe' = somme des moteurs d'axe (plateforme). */ mode?: 'global' | 'par_axe'; /** Axes désactivés par l'habitant (toggles) ; absent = les trois. */ axes_actifs?: AxesActifs; /** P1.5 : aménagements cochés ; ignoré en v0.1 (signalé). */ amenagements_coches?: string[]; } export interface DonneesIntegrateur extends DonneesAutonomie { france_climat: LigneClimat[]; } export interface SortiesIntegrateur { mode: 'global' | 'par_axe'; contexte: Contexte; poids: PoidsAxes; budgets: PoidsAxes; axes: Record>; total_eur_ht: number; budget_cible: number; ecart_budget_pct: number; status: Statut; message_status?: string; couplages: string[]; taux_couverture: Record; } /** Statut agrégé : BUDGET_INSUFFISANT l'emporte, puis AJOUTER_OPTIONNEL, sinon OK. */ export declare function agregeStatuts(statuts: Statut[]): Statut; export declare function calculeIntegrateur(entrees: EntreesIntegrateur, donnees: DonneesIntegrateur): Resultat; export declare const integrateur: Moteur; export default integrateur;