import { Subject } from "rxjs";
export declare class BoundsConstrainedNumberValue {
    set value(value: number);
    get value(): number;
    get valueAsSting(): string;
    set min(min: number);
    get min(): number;
    set max(max: number);
    get max(): number;
    get trueMax(): number;
    set step(step: number);
    set decimals(decimals: number);
    get step(): number;
    get stepDecimals(): number;
    get constraintsEnabled(): boolean;
    valueChange: Subject<number>;
    protected _value: number;
    protected _decimals: number;
    protected _valueAsString: string;
    protected _min: number;
    protected _max: number;
    protected _step: number;
    protected _stepDecimals: number;
    protected _trueMax: number;
    private _constraintsEnabled;
    private _precision?;
    private _scale?;
    constructor();
    roundedDecimals(value: number): number;
    putPrecision(precision: number): void;
    putScale(scale: number): void;
    init(silent?: boolean): void;
    setValueByUserInputText(text: string, silent?: boolean): boolean;
    /**
     * Makes sure current value adheres to our stepped bounds. Returns true if inner value really changed (after sanitizing), false if not.
     * Returns whether value really changed.
     */
    setValue(newValue: number, silent?: boolean): boolean;
    increment(steps?: number): void;
    decrement(steps?: number): void;
    disableConstraints(): void;
    enableConstraints(): void;
    private _updateTrueMax;
    private _updateStepDecimals;
    private _setValue;
}
