import { Nub } from "../internal_modules";
import { ParamsEquation } from "../internal_modules";
import { Result } from "../internal_modules";
import { ParallelStructureParams } from "../internal_modules";
import { Structure } from "../internal_modules";
import { LoiDebit } from "../internal_modules";
/**
 * Calcul de une ou plusieurs structures hydrauliques en parallèles
 * reliées par les cotes amont et aval et dont le débit est égal à la
 * somme des débits de chaque structure.
 */
export declare class ParallelStructure extends Nub {
    constructor(prms: ParamsEquation, dbg?: boolean);
    /** children casting */
    get structures(): Structure[];
    set structures(structures: Structure[]);
    /**
     * true to inhibit emission of ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN error in Structure calculations and
     * WARNING_SLOT_SUBMERGENCE_NOT_BETWEEN_07_AND_09 warning in StructureWeirSubmergedLarinier.
     * Used during predams calculations.
     */
    inhibitSubmergenceError: boolean;
    /**
     * paramètres castés au bon type
     */
    get prms(): ParallelStructureParams;
    /** Returns admissible LoiDebit grouped by StructureType */
    getLoisAdmissibles(): {
        [key: string]: LoiDebit[];
    };
    /** Returns a flat array of all admissible LoiDebit */
    getLoisAdmissiblesArray(): LoiDebit[];
    /** Returns the 1st deep item from LoisAdmissibles */
    getDefaultLoiDebit(): LoiDebit;
    /**
     * Effectue une série de calculs sur un paramètre; déclenche le calcul en chaîne
     * des modules en amont si nécessaire
     * Surcharge pour les tests préalables liés à la structure du nub
     * @param rInit solution approximative du paramètre
     */
    CalcSerie(rInit?: number): Result;
    /**
     * Calcul du débit des structures en parallèle (sans détail pour chaque structure)
     * @param sVarCalc Variable à calculer (Q uniquement)
     */
    Equation(sVarCalc: string): Result;
    /**
     * Calcul de la somme des débits de chaque structure
     * @param iExcept Index de la structure à ne pas additionner (optionnel)
     */
    CalcQ(iExcept?: number): Result;
    /**
     * Calcul du débit total, de la cote amont ou aval ou d'un paramètre d'une structure
     * @param sVarCalc Nom du paramètre à calculer :
     *                 "Q", "Z1", "Z2"
     *                 ou { uid: "abcdef", symbol: "X" } avec "abcdef" l'index de l'ouvrage et "X" son paramètre
     * @param rInit Valeur initiale
     */
    Calc(sVarCalc: string | any, rInit?: number): Result;
    /**
     * Once session is loaded, run a second pass on all linked parameters to
     * reset their target if needed
     */
    fixLinks(obj: any): {
        hasErrors: boolean;
    };
    /**
     * paramétrage de la calculabilité des paramètres
     */
    protected setParametersCalculability(): void;
    /**
     * Mise à jour de Z1, Z2, h1 et h2 pour tous les ouvrages
     */
    protected updateStructuresH1H2(): void;
    /**
     * Calcul du paramètre d'un des ouvrages en parallèle
     * @param sVC Index de l'ouvrage et paramètre à calculer
     * @param rInit Valeur initiale
     */
    protected CalcStructPrm(index: number, symbol: string, rInit?: number): Result;
}
//# sourceMappingURL=parallel_structure.d.ts.map