import { Nub } from "../internal_modules";
import { ParamDefinition } from "../internal_modules";
import { Observer } from "../internal_modules";
import { Result } from "../internal_modules";
import { SolveurParams } from "../internal_modules";
export declare class Solveur extends Nub implements Observer {
    /**
     * Finds all parameters whose value can be searched for by dichotomy, for
     * a given value of calculated param of given Nub
     * @param nub Nub calculated by Solveur
     * @param addSelf if true, will also return parameters of the current Nub
     */
    static getDependingNubsSearchableParams(nub: Nub, addSelf?: boolean): ParamDefinition[];
    constructor(prms: SolveurParams, dbg?: boolean);
    get prms(): SolveurParams;
    /** finds the Nub to calculate by its UID */
    get nubToCalculate(): Nub;
    /** defines the Nub to calculate by setting property "nubToCalculate" to the UID of the given Nub */
    set nubToCalculate(n: Nub);
    get targettedResult(): string;
    set targettedResult(symbol: string);
    /** finds the source parameter whose value we're looking for, by its Nub UID / symbol */
    get searchedParameter(): ParamDefinition;
    /**
     * defines the searched parameter by setting property "searchedParameter" to the UID of the
     * parameter's Nub / the parameter's symbol
     */
    set searchedParameter(p: ParamDefinition);
    /**
     * Looks for potential errors before calling Nub.Calc()
     */
    Calc(sVarCalc?: string, rInit?: number): Result;
    CalcSerie(rInit?: number): Result;
    /**
     * Calculates the target "downstream" Nub, that will trigger calculation of
     * all linked "upstream" Nubs, including the one that contains the variating
     * parameter X
     * @param sVarCalc should always be pseudo-parameter "Y"
     */
    Equation(sVarCalc: string): Result;
    getFirstAnalyticalParameter(): ParamDefinition;
    update(sender: any, data: any): void;
    /**
     * Once session is loaded, run a second pass on targetted
     * objects if they couldn't be set before
     */
    fixTargets(obj: any): {
        hasErrors: boolean;
    };
    protected setParametersCalculability(): void;
    protected Solve(sVarCalc: string, rInit: number): Result;
}
//# sourceMappingURL=solveur.d.ts.map