import { ParamDefinition } from "../internal_modules";
import { Observer } from "../internal_modules";
import { Result } from "../internal_modules";
import { ParSimulationParams } from "../internal_modules";
import { Message } from "../internal_modules";
import { ParType, Par } from "../internal_modules";
export declare enum ParFlowRegime {
    /** Free flow (unsubmerged) */
    FREE = 0,
    /** Submerged flow */
    SUBMERGED = 1
}
export declare class ParSimulation extends Par implements Observer {
    constructor(prms: ParSimulationParams, dbg?: boolean);
    get prms(): ParSimulationParams;
    get parType(): ParType;
    set parType(e: ParType);
    Calc(sVarCalc: string, rInit?: number): Result;
    /**
     * Checks that at least one of ZR, ZD is given; if both are given, checks that
     * each one corresponds to the expected value calculated from the other one;
     * returned message id undefined if everything is OK
     * @param ZR ZR1 or ZR2
     * @param ZD ZD1 or ZD2
     */
    protected checkZrZd(ZR: ParamDefinition, ZD: ParamDefinition): {
        message: Message;
        expectedZR: number;
        expectedZD: number;
    };
    protected CalcNb(expectedZD1?: number, expectedZD2?: number): number;
    Equation(sVarCalc: string): Result;
    protected setParametersCalculability(): void;
    protected exposeResults(): void;
}
//# sourceMappingURL=par_simulation.d.ts.map