import { DataObj, DataObjClass } from '../../types/data-structures';
import { IWrapperType } from '../../types/generic';
/**
 * A class for handling Smeup number formatting and conversion between different formats.
 * Implements IWrapperType<number> to provide consistent number handling interface.
 */
declare class SmeupNumber implements IWrapperType<number | undefined> {
    private class;
    private value;
    private decimalSeparator;
    /**
     * Creates a new SmeupNumber instance
     * @param {DataObjClass} objClass - The class/type information of the number
     * @param {number} value - The numeric value in ISO format (using '.' as decimal separator)
     * @param {string} [decimalSeparator='.'] - The desired decimal separator for legacy format
     */
    constructor(objClass: DataObjClass | undefined, value: number | undefined, decimalSeparator?: string);
    /**
     * Creates a SmeupNumber instance from a DataObj
     * @param {DataObj} obj - The source data object containing the number
     * @param {string} decimalSeparator - The decimal separator to use in legacy format
     * @returns {SmeupNumber} A new SmeupNumber instance
     * @throws {Error} When number creation for the given type is not implemented
     */
    static fromDataObj(obj: DataObj | undefined, decimalSeparator: string): SmeupNumber;
    /**
     * Gets the value in legacy format (with configured decimal separator)
     * @returns {string} The formatted number string
     * @throws {Error} When the number format is not implemented for this type
     */
    getLegacyValue(): string;
    /**
     * Gets the numeric value
     * @returns {number} The parsed numeric value
     */
    getValue(): number | undefined;
}
export default SmeupNumber;
//# sourceMappingURL=number.d.ts.map