import { ConfigBeanPropOptions, ConfigPropConverter, FormatOptions, KosConfigProperty, OptionsExpander, OptionsType } from './types';
import { ConfigPropertyTypes } from '../types';
import { UnitSource } from '../region-info/types';
import { RegionInfoModel } from '../region-info';
import { IConfigBeanModel } from '../config-bean/config-bean-model';
import { UnitConverter } from '../../decorators/kos-config-bean-prop';

/**
 * @inheritdoc
 */
declare class KosConfigPropertyImpl implements KosConfigProperty {
    id: string;
    path: string;
    attribute: string;
    converter?: ConfigPropConverter;
    formatter?: FormatOptions;
    optionsExpander?: OptionsExpander;
    serviceBasePath?: string;
    regionInfo: RegionInfoModel;
    bean: IConfigBeanModel;
    constructor(modelId: string, options: ConfigBeanPropOptions);
    /**
     * For cases where the default unit system is used, this method will return
     * the number of decimal places to use for the given measure.
     * @param measure the measure to get the default decimal places for
     * @param unitSystem the unit system to use
     * @returns the number of decimal places to use for the given measure
     * @throws Error if measure is not provided
     **/
    getDefaultUnitDecimalPlaces(measure: string, unitSystem: string, unit?: string): number;
    /**
     * For cases where the default unit system is used, this method will return
     * the default unit for the given measure.
     * @param measure the measure to get the default unit for
     * @param unitSystem the unit system to use
     * @returns the default unit for the given measure
     * @throws Error if measure is not provided
     * @throws Error if unitSystem is not provided
     * @throws Error if the default unit for the given measure is not found
     **/
    getDefaultUnitForMeasure(measure: string, unitSystem: string): string;
    get schemaType(): import('../../services/config-bean').SchemaNodeType | "enum";
    get schemaFormat(): string;
    get options(): OptionsType[];
    convertUnit(converter?: UnitConverter, defaultSystem?: string, defaultMeasure?: string): {
        measure: string | undefined;
        system: string | undefined;
        unit: string | undefined;
    };
    getConverterUnits(): {
        backend: UnitSource;
        display: {
            measure: string | undefined;
            system: string | undefined;
            unit: string | undefined;
        };
    };
    set value(value: ConfigPropertyTypes);
    get value(): ConfigPropertyTypes;
    get rawValue(): unknown;
    get significantValue(): unknown;
    get previousValue(): {};
    getValue(current: boolean): {};
    activate(): Promise<void>;
    get displayValue(): string;
    get unit(): string | undefined;
    get displayOptions(): import('../../services/config-bean').SchemaOptionsType | undefined;
    private getMeasureFromFormat;
    private getConverterFromFormat;
    private getDefaultUnit;
    getFormatterOptions(converter?: ConfigPropConverter): Intl.NumberFormat | null;
    private getConverter;
    updateProperty(value: ConfigPropertyTypes): Promise<void>;
}
declare const Registration: {
    registration: {
        "config-bean-prop-model": {
            class: typeof KosConfigPropertyImpl;
            singleton: boolean;
        };
    };
    type: string;
    factory: (id: string) => (options?: ConfigBeanPropOptions | undefined, parentId?: string | undefined) => KosConfigProperty<unknown>;
};
export default Registration;
//# sourceMappingURL=config-bean-prop-model.d.ts.map