import { IDebug } from "./base";
import { JalhydObject } from "./internal_modules";
import { ParamDefinition } from "./internal_modules";
import { IParamDefinitionIterator } from "./internal_modules";
import { ParamsEquation } from "./internal_modules";
/**
 * type de calculette
 */
export declare enum CalculatorType {
    ConduiteDistributrice = 0,
    LechaptCalmon = 1,
    SectionParametree = 2,
    RegimeUniforme = 3,
    CourbeRemous = 4,
    PabDimensions = 5,
    PabPuissance = 6,
    Structure = 7,
    ParallelStructure = 8,
    Dever = 9,
    Cloisons = 10,
    MacroRugo = 11,
    PabChute = 12,
    PabNombre = 13,
    Section = 14,
    Pab = 15,
    CloisonAval = 16,
    MacroRugoCompound = 17,
    Jet = 18,
    Grille = 19,
    Pente = 20,
    Bief = 21,
    Solveur = 22,
    YAXB = 23,
    Trigo = 24,
    SPP = 25,
    YAXN = 26,
    ConcentrationBlocs = 27,
    Par = 28,
    ParSimulation = 29,
    PreBarrage = 30,
    PbCloison = 31,
    PbBassin = 32,
    Espece = 33,
    Verificateur = 34,
    PressureLoss = 35,
    PressureLossLaw = 36,
    MacrorugoRemous = 37,
    RugoFondMultiple = 38
}
/** types de sections */
export declare enum SectionType {
    SectionCercle = 0,
    SectionRectangle = 1,
    SectionTrapeze = 2,
    SectionPuissance = 3
}
/**
 * noeud de calcul
 */
export declare abstract class ComputeNode extends JalhydObject implements IDebug {
    /**
     * Set of ParamDefinition, used as input of this node
     */
    protected _prms: ParamsEquation;
    /**
     * { symbol => ParamFamily } map for results; defines a priori which
     * future result can be linked to other Nub's parameters
     */
    protected _resultsFamilies: any;
    private _debug;
    constructor(prms: ParamsEquation, dbg?: boolean);
    get prms(): ParamsEquation;
    /**
     * Retrieves a parameter from its symbol (unique in a given Nub)
     * @WARNING also retrieves **extra results** and returns them as ParamDefinition !
     */
    getParameter(name: string): ParamDefinition;
    getFirstAnalyticalParameter(): ParamDefinition;
    /**
     * Returns an iterator over own parameters (this._prms)
     */
    get parameterIterator(): IParamDefinitionIterator;
    debug(...args: any[]): void;
    get DBG(): boolean;
    set DBG(d: boolean);
    /**
     * Define ParamFamily (@see ParamDefinition) for extra results; also
     * used to declare extra results that are not linkable but may be
     * used by Solveur : set family to undefined
     */
    protected exposeResults(): void;
    get resultsFamilies(): any;
    static resultsUnits(): any;
    protected abstract setParametersCalculability(): void;
}
//# sourceMappingURL=compute-node.d.ts.map