import type { Type_JSON } from './Utils'; /** * Une brique dans l'assemblage — pas son contenu (il est dans son propre * fichier), seulement son ÉCHELLE. La clé qui la porte dans `bricks` est l'id du * nœud-procédé, c'est-à-dire le `central_node_id` de sa section `process`. */ export type Type_UnitaryAssemblyBrick = { activity: number; unit_ref?: string; }; /** * Un raccord port-à-port : le produit `product` sort du procédé `from` et entre * dans le procédé `to`. C'est l'arête du graphe de composition — trois * identifiants de nœuds du global, rien de plus. * * Un même produit peut porter PLUSIEURS raccords (deux procédés en amont, trois * en aval : autant de lignes), et deux procédés directement reliés (un flux * secteur → secteur, sans produit intermédiaire) n'en produisent AUCUN — ce flux * appartient aux deux étoiles, la composition le refait en fusionnant par id. */ export type Type_UnitaryAssemblyConnection = { product: string; from: string; to: string; }; /** Le contenu d'un fichier d'assemblage unitaire. */ export type Type_UnitaryAssembly = { bricks: { [process_node_id: string]: Type_UnitaryAssemblyBrick; }; connections: Type_UnitaryAssemblyConnection[]; shell: Type_JSON; }; /** * Lit un fichier d'assemblage, ou null s'il n'en est pas un (discriminant absent) * ou s'il est inutilisable. * * TOUT-OU-RIEN, comme `unitaryProcessFromJSON` et pour la même raison : un * assemblage partiellement lu serait PLAUSIBLE et FAUX — une brique dont * l'activité serait tombée, un raccord ignoré, et la composition (U3) fermerait * ses bilans sur un graphe amputé sans que rien ne le signale. Mieux vaut « ce * fichier n'est pas un assemblage ». */ export declare const unitaryAssemblyFromJSON: (json: unknown) => Type_UnitaryAssembly | null; /** * Forme JSON, symétrique de la lecture : le discriminant en tête, puis les trois * membres, tous écrits même vides — un assemblage sans brique reste un * assemblage, et l'absence de `shell` ne se distinguerait pas d'un global * entièrement absorbé. */ export declare const unitaryAssemblyToJSON: (assembly: Type_UnitaryAssembly) => Type_JSON;