Extraction du cœur autonomie de calculs.trans-former.fr (12 modules, sans singleton, couplages sans mutation, console derrière debug), découpage en trois moteurs d'axe + intégrateur (mode global = calculs, mode par_axe = plateforme), moteurs commun.contexte (Corse 2A/2B, DOM 97x corrigés) et commun.geometrie, table des coefficients harmonisés (docs/CONSTANTES.md pour Jules, R-7), validation structurelle des données (schemas/), tests hors ligne : 28 assertions d'origine + épingle générée depuis le code d'astro-pro + écarts d'harmonisation figés + contrat des moteurs. dist/ committé. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019UBHYPdeQYy2m1GVJp6b12
72 lines
2.7 KiB
TypeScript
72 lines
2.7 KiB
TypeScript
import type { TableCoefficients } from '../commun/coefficients.js';
|
|
import type { Contexte } from '../commun/contexte.js';
|
|
import { Trace } from '../commun/contrat.js';
|
|
import type { PosteResultat } from './noyau/types.js';
|
|
export interface DetailEau {
|
|
captable_m3: number;
|
|
besoin_m3: number;
|
|
besoin_substituable_m3: number;
|
|
}
|
|
export interface DetailEnergie {
|
|
kwc: number;
|
|
kwh_par_kwc: number;
|
|
facteur_orientation: number;
|
|
production_kwh: number;
|
|
batterie_kwh: number;
|
|
taux_autoconso: number;
|
|
autoconsomme_kwh: number;
|
|
besoin_kwh: number;
|
|
}
|
|
export interface DetailAlim {
|
|
ml: number;
|
|
reco_ml: number;
|
|
}
|
|
/** kWc installés dans la sélection (dimensions en kWc). */
|
|
export declare function kwcSelectionnes(postes: PosteResultat[]): number;
|
|
/** kWh de batterie dans la sélection (dimensions en kWh). */
|
|
export declare function batterieSelectionnee(postes: PosteResultat[]): number;
|
|
/** Mètres linéaires de haie dans la sélection. */
|
|
export declare function mlHaiesSelectionnes(postes: PosteResultat[]): number;
|
|
/** Vrai si la sélection porte un équipement de captage. */
|
|
export declare function aCaptage(postes: PosteResultat[]): boolean;
|
|
/**
|
|
* EAU : volume captable vs besoin substituable. null si aucun captage.
|
|
*/
|
|
export declare function tauxEau(entrees: {
|
|
surface_toit_m2?: number;
|
|
nb_personnes?: number;
|
|
pluviometrie_mm: number;
|
|
a_captage: boolean;
|
|
}, coefficients: TableCoefficients, trace: Trace): {
|
|
taux: number | null;
|
|
detail: DetailEau | null;
|
|
};
|
|
/** Taux d'autoconsommation selon la batterie : 0 kWh → sans, ≥ 10 kWh → avec, linéaire entre. */
|
|
export declare function tauxAutoconso(batterie_kwh: number, coefficients: TableCoefficients): number;
|
|
/** Productible PV (kWh/kWc/an) pour un contexte, depuis la table de coefficients. */
|
|
export declare function productiblePv(contexte: Pick<Contexte, 'zone_climatique_rt' | 'zone_biogeo_code'>, coefficients: TableCoefficients, trace: Trace): number;
|
|
/**
|
|
* ÉNERGIE : production PV autoconsommée vs besoin d'électricité spécifique.
|
|
* null si aucun kWc dans la sélection.
|
|
*/
|
|
export declare function tauxEnergie(entrees: {
|
|
kwc: number;
|
|
batterie_kwh: number;
|
|
orientation_toit?: string;
|
|
nb_personnes?: number;
|
|
contexte: Pick<Contexte, 'zone_climatique_rt' | 'zone_biogeo_code'>;
|
|
}, coefficients: TableCoefficients, trace: Trace): {
|
|
taux: number | null;
|
|
detail: DetailEnergie | null;
|
|
};
|
|
/**
|
|
* ALIMENTATION : mètres de haie vs recommandation. null si aucune haie.
|
|
*/
|
|
export declare function tauxAlim(entrees: {
|
|
ml: number;
|
|
nb_personnes?: number;
|
|
}, coefficients: TableCoefficients, trace: Trace): {
|
|
taux: number | null;
|
|
detail: DetailAlim | null;
|
|
};
|