import { ParParams } from "../internal_modules";
import { Result } from "../internal_modules";
import { ParType } from "../internal_modules";
import { Message } from "../internal_modules";
export declare abstract class ParTypeAbstract {
    protected prms: ParParams;
    /** type of the current PAR calculation class */
    protected type: ParType;
    /** Constant where acceleration is involved */
    protected abstract get RG(): number;
    constructor(prms: ParParams);
    abstract checkInput(): {
        fatal: boolean;
        messages: Message[];
    };
    abstract CalcH(): number;
    abstract CalcHa(qStar?: number): number;
    abstract CalcQStar(): number;
    /** minimum value of Q* according to abacuses */
    abstract get minQstar(): number;
    /** maximum value of Q* according to abacuses */
    abstract get maxQstar(): number;
    abstract CalcQFromQStar(qStar: number): number;
    abstract CalcAw(): number;
    /** Calculate ZR1 from ZD1, or ZR2 from ZD2 */
    abstract CalcZRFromZD(ZDv: number): number;
    /** reciprocal of CalcZRFromZD() */
    abstract CalcZDFromZR(ZRv: number): number;
    CalcZM(): number;
    abstract CalcP(): number;
    abstract CalcQFromHa(): number;
    /** calculates the number of baffles Nb based on the baffles spacing P */
    abstract CalcNb(): number;
    CalcZR1(): number;
    addExtraResults(res: Result, includeZmAndZr1?: boolean): void;
    CalcVDeb(): number;
    get ZD1(): number;
    get ha(): number;
    /** returns the given input P if any, or the standard P calculated by CalcP() */
    get P(): number;
    /** minimum value of ha according to abacuses */
    get minHa(): number;
    /** maximum value of ha according to abacuses */
    get maxHa(): number;
    /** Calculate the raw length of the pass based on water elevations */
    CalcLw(): number;
    /** Calculate the net length of the pass based on number of baffles */
    CalcLs(): number;
    /** Calculate horizontal projection of pass length */
    CalcLh(): number;
    protected doCalcQYFromHa(x: number): number;
    /** coefficients for calculating c(0|1|2)ha? @see getCoeff */
    protected abstract get coef(): {
        [key: string]: {
            [key: string]: number[];
        };
    };
    /**
     * get c0, c1 or c2 coefficient for h or ha, for the current pass type
     * @param hOrHa "h" or "ha" :)
     * @param ci "c0", "c1" or "c2"
     */
    protected getCoeff(hOrHa: string, ci: string): number;
    protected get c0h(): number;
    protected get c1h(): number;
    protected get c2h(): number;
    protected get c0ha(): number;
    protected get c1ha(): number;
    protected get c2ha(): number;
}
//# sourceMappingURL=par_type.d.ts.map