import { GroupingError } from "./grp-errors.types";
/**
 * Grouping result structure containing CMD and GHM information
 */
export interface GrpResultat2025 {
    /** CMD (Catégorie Majeure de Diagnostic) */
    cmd: string;
    /** GHM (Groupe Homogène de Malades) */
    ghm: string;
    /** Version of the grouping algorithm */
    version: string;
    /** Error/return code */
    cret: string;
}
/**
 * GHS valorisation structure containing all supplement and billing information
 */
export interface GhsValorisation2025 {
    /** GHS (Groupe Homogène de Séjour) */
    ghs: string;
    /** Number of sessions */
    nbseance: number;
    /** Number of excess days */
    nbjxsup: number;
    /** Stay indicator for lower bound */
    sejxinf: number;
    /** Number of days below lower bound */
    nbjxinf: number;
    /** UHCD indicator */
    buhcd: number;
    /** Number of ICU days */
    nbjrea: number;
    /** Number of emergency days */
    nbrep: number;
    /** Number of continuous monitoring days */
    nbjsrc: number;
    /** Number of STF days from ICU */
    nbjstf_issuderea: number;
    /** Number of USIP days (2025 specific) */
    nbj_usip: number;
    /** Total STF days */
    nbjstf_tot: number;
    /** Supplement counters for acts 687, 688, 689 */
    nbac687: number;
    nbac688: number;
    nbac689: number;
    /** Protontherapy and ICT counters */
    nbprot: number;
    nbict: number;
    /** Radiotherapy supplement counters */
    nbacRX1: number;
    nbacRX2: number;
    nbacRX3: number;
    nbRCMI: number;
    /** Additional supplement counters */
    nbactsupp9623: number;
    nbactsupp9625: number;
    nbactsupp9631: number;
    nbactsupp9632: number;
    nbactsupp9633: number;
    /** Organ procurement indicator */
    acprlvtorg: number;
    /** Neonatal days counters */
    nbjnna: number;
    nbjnnb: number;
    nbjnnc: number;
    /** GHS before innovation */
    ghsavantInnov: string;
    /** Dialysis supplement counters */
    nbhd: number;
    nbent1: number;
    nbent2: number;
    nbent3: number;
    /** Hyperbaric chamber days */
    nbchypb: number;
    /** Antepartum supplement */
    nbantepartum: number;
    /** Pediatric radiotherapy supplement */
    nbradiopedia: number;
    /** GHS minor indicator */
    ghsminor: number;
    /** SDC supplement */
    supplSDC: number;
    /** CarTCell supplement */
    supplCarTCell: number;
    /** Avastin flag */
    flagAvastin: number;
    /** Pediatric protontherapy */
    nbprotped: number;
}
/**
 * Diagnosis list information
 */
export interface DiagList2025 {
    /** Number of diagnoses */
    nbdiag: number;
    /** List of diagnoses (optional) */
    listdiag?: string;
}
/**
 * Act list information
 */
export interface ActList2025 {
    /** Number of acts */
    nbac: number;
    /** List of acts (optional) */
    listzac?: string;
}
/**
 * RUM-specific information
 */
export interface InfoRum2025 {
    /** ICU marker acts indicator */
    brea: number;
    /** Continuous monitoring indicator */
    bsc: number;
    /** Medical unit authorization type */
    typum: string;
    /** Partial stay duration */
    dsp: number;
}
/**
 * RSS information structure
 */
export interface RssInfo2025 {
    /** Age in years */
    agea: number;
    /** Age in days */
    agej: number;
    /** Total stay duration */
    dstot: number;
    /** Diagnosis list */
    diaglist: DiagList2025;
    /** Act list */
    actlist: ActList2025;
    /** Array of RUM information */
    tabval: InfoRum2025[];
    /** Signature fields */
    sigfg: string;
    sigrss: string;
    sigrssghsfg: string;
}
/**
 * Complete result structure for grp_2025_wrapper function
 */
export interface Grp2025Result {
    /** Return code from the grouping operation */
    returnCode: number;
    /** Return code mapped to a GroupingError */
    returnError: GroupingError | null;
    /** Grouping results object */
    grp_res: GrpResultat2025;
    /** GHS valorisation object */
    ghs_val: GhsValorisation2025;
    /** RSS information object */
    rss_inf: RssInfo2025;
}
