import { Result } from "../internal_modules";
import { MacrorugoParams } from "../internal_modules";
import { FishPass } from "../internal_modules";
export declare enum MacroRugoFlowType {
    EMERGENT = 0,
    QUASI_EMERGENT = 1,
    SUBMERGED = 2
}
export declare class MacroRugo extends FishPass {
    private static readonly g;
    /** nu: water kinematic viscosity  */
    private static readonly nu;
    /** Ratio between the width (perpendicular to flow) and the length (parallel to flow) of a cell (-) */
    private static readonly fracAxAy;
    /** Limit between emergent and submerged flow */
    private static readonly limitSubmerg;
    /** Flag for submerged Flow */
    private flowType;
    /** Velocity at the bed (m.s-1) */
    private u0;
    private _cache;
    /** Coefficients used in f_h*(h*) */
    private paramFhStar;
    /** Coefficient used in rQ */
    private paramRQ;
    /** Coefficient used in rQ */
    private paramRV;
    /** Maximum value for Cd */
    private paramMaxCd;
    /** true: Cd0 * min(3, fh), false : min(6, Cd0 * fh) */
    private paramCdNewVersion;
    /**
     * { symbol => string } map that defines units for extra results
     */
    private static _resultsUnits;
    constructor(prms: MacrorugoParams, dbg?: boolean);
    /**
     * paramètres castés au bon type
     */
    get prms(): MacrorugoParams;
    /**
     * 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
     * @param rInit Valeur initiale
     */
    Calc(sVarCalc: string, rInit?: number): Result;
    Equation(sVarCalc: string): Result;
    /**
     * paramétrage de la calculabilité des paramètres
     */
    protected setParametersCalculability(): void;
    static resultsUnits(): {
        PV: string;
        Vdeb: string;
        Vmax: string;
        Vg: string;
        ZF2: string;
        Strickler: string;
        xCenter: string;
    };
    protected exposeResults(): void;
    private setFlowType;
    /**
     * Equation from Cassan, L., Laurens, P., 2016. Design of emergent and submerged rock-ramp fish passes.
     * Knowledge & Management of Aquatic Ecosystems 45.
     * @param sVarCalc Variable à calculer
     */
    private resolveQ;
    /**
     * Averaged velocity (m.s-1)
     */
    private get U0();
    private get CdChD();
    /**
     * sigma ratio between the block area in the x, y plane and D2
     */
    private get sigma();
    private get R();
    /**
     * Bed friction coefficient Equation (3) (Cassan et al., 2016)
     * @param Y Water depth (m)
     */
    private calcCf;
    /**
     * Calculation of Cd : drag coefficient of a block under the actual flow conditions
     */
    private get Cd();
    /**
     * Calcul de Beta force ratio between drag and turbulent stress (Cassan et al. 2016 eq(8))
     * \Beta = (k / alpha_t) (C_d C k / D) / (1 - \sigma C)
     * @param alpha \alpha_t turbulent length scale (m) within the blocks layer
     */
    private calcBeta;
    /**
     * Averaged velocity at a given vertical position (m.s-1)
     * @param alpha turbulent length scale (m) within the blocks layer
     * @param z dimensionless vertical position z / k
     */
    private calcUz;
    private get ustar();
    private resolveAlpha_t;
    private resolveQSubmerged;
    private resolveQEmergent;
    private resolveU0Complete;
    /**
     * Calcul du ratio entre la vitesse moyenne à l'aval d'un block et la vitesse maximale
     * r = 1.1 pour un plot circulaire Cd0​=1 et r = 1.5 pour un plot à face plane Cd0​=2
     */
    private get rV();
    /**
     * Perte de charge supplémentaire due à la forme (voir fFr)
     * r = 1 pour un plot circulaire Cd0​=1 et r = 1.25 pour un plot à face plane Cd0​=2
     */
    private get rQ();
    /**
     * Froude correction function (Cassan et al. 2014, Eq. 19)
     */
    private get fFr();
    /**
     * Calculation of Froude correction function (Cassan et al. 2014, Eq. 19)
     */
    private CalcfFr;
}
//# sourceMappingURL=macrorugo.d.ts.map