import { DatesRangeValueT, IDatesRangeEntity, IFieldConverter, IFieldConverterConfigEntity, IMultiFieldValueMergeConfigEntity, INamedEntity, IPresetsRawDataLabeledValueEntity, IReduxUserEntity, MultiFieldValueT, NotMultiFieldValueT, PlaceEntityValueT, SelectValueT, TranslatorT } from '../../definition';
import { AnyT, EntityIdT, IEntity, StringNumberT } from '../../definitions.interface';
export declare class FieldConverter implements IFieldConverter {
    private static readonly logger;
    protected readonly t: TranslatorT;
    protected readonly converters: Map<string, (value: unknown) => unknown>;
    /**
     * @stable [09.01.2020]
     */
    constructor();
    /**
     * @stable [09.01.2020]
     * @param {IFieldConverterConfigEntity} config
     */
    register(config: IFieldConverterConfigEntity): void;
    /**
     * @stable [13.12.2020]
     * @param config
     */
    convert(config: IFieldConverterConfigEntity): AnyT;
    /**
     * @stable [09.01.2020]
     * @param config
     */
    converter(config: IFieldConverterConfigEntity): (value: AnyT) => AnyT;
    /**
     * @stable [08.07.2020]
     * @param {SelectValueT} value
     * @returns {EntityIdT}
     */
    fromSelectValueToId(value: SelectValueT): EntityIdT;
    /**
     * @stable [07.12.2020]
     * @param value
     */
    fromSelectValueToPositiveOrNegativeNumberLikeId(value: SelectValueT): EntityIdT;
    /**
     * @stable [28.10.2020]
     * @param value
     */
    fromSelectValueToRawValue<TEntity = IEntity>(value: SelectValueT): TEntity;
    /**
     * @stable [18.05.2020]
     * @param {SelectValueT} value
     * @returns {StringNumberT}
     */
    fromSelectValueToDisplayValue(value: SelectValueT): StringNumberT;
    /**
     * @stable [17.05.2020]
     * @param {PlaceEntityValueT} value
     * @returns {string}
     */
    fromPlaceEntityToDisplayValue(value: PlaceEntityValueT): string;
    /**
     * @stable [17.05.2020]
     * @param {PlaceEntityValueT} value
     * @returns {string}
     */
    fromPlaceEntityToPlaceParameter(value: PlaceEntityValueT): string;
    /**
     * @stable [14.03.2020]
     * @param {TValue} value
     * @returns {IReduxUserEntity}
     */
    fromOAuthJwtDecodedInfoToUserEntity<TValue = AnyT>(value: TValue): IReduxUserEntity;
    /**
     * @stable [08.07.2020]
     * @param {INamedEntity} value
     * @returns {IPresetsRawDataLabeledValueEntity}
     */
    fromNamedEntityToRawDataLabeledValueEntity(value: INamedEntity): IPresetsRawDataLabeledValueEntity;
    /**
     * @stable [13.04.2020]
     * @nullable
     * @param {string} value
     * @returns {string}
     */
    fromCronExpressionToCronParameter(value: string): string;
    /**
     * @stable [16.05.2020]
     * @param value
     */
    fromMultiFieldValueToEntities<TEntity extends IEntity = IEntity>(value: MultiFieldValueT<TEntity>): TEntity[];
    /**
     * @stable [13.12.2020]
     * @param value
     */
    fromNotMultiFieldValueToEntities<TEntity extends IEntity = IEntity>(value: NotMultiFieldValueT<TEntity>): TEntity[];
    /**
     * @stable [04.09.2020]
     * @param value
     */
    fromMultiFieldValueToTrueEntitiesObject<TEntity extends IEntity = IEntity>(value: IMultiFieldValueMergeConfigEntity<TEntity>): Record<EntityIdT, boolean>;
    /**
     * @stable [03.09.2020]
     * @param value
     */
    fromMultiFieldValueToEditEntities<TEntity extends IEntity = IEntity>(value: MultiFieldValueT<TEntity>): TEntity[];
    /**
     * @stable [16.05.2020]
     * @param {MultiFieldValueT<TEntity extends IEntity>} value
     * @returns {TEntity[]}
     */
    fromMultiFieldValueToDefinedEntities<TEntity extends IEntity = IEntity>(value: MultiFieldValueT<TEntity>): TEntity[];
    /**
     * @stable [28.01.2020]
     * @param {PlaceEntityValueT} placeEntity
     * @returns {string}
     */
    protected zipCodeEntityAsDisplayValue(placeEntity: PlaceEntityValueT): string;
    /**
     * @stable [18.05.2020]
     * @param {SelectValueT} option
     * @returns {StringNumberT}
     */
    protected $fromSelectValueToDisplayValue(option: SelectValueT): StringNumberT;
    /**
     * @stable [07.03.2020]
     * @param {IDatesRangeEntity} entity
     * @returns {DatesRangeValueT}
     */
    protected datesRangeEntityAsDatesRangeValue(entity: IDatesRangeEntity): DatesRangeValueT;
    /**
     * @stable [07.03.2020]
     * @param {DatesRangeValueT} value
     * @returns {IDatesRangeEntity}
     */
    protected datesRangeValueAsDatesRangeEntity(value: DatesRangeValueT): IDatesRangeEntity;
    /**
     * @stable [14.03.2020]
     * @param {TValue} value
     * @returns {IReduxUserEntity}
     */
    private $fromOAuthJwtDecodedInfoToUserEntity;
    /**
     * @stable [13.04.2020]
     * @nullable
     * @param {string} value
     * @returns {string}
     */
    private $fromCronExpressionToCronParameter;
    /**
     * @stable [08.07.2020]
     * @param {INamedEntity} value
     * @returns {IPresetsRawDataLabeledValueEntity}
     */
    private $fromNamedEntityToRawDataLabeledValueEntity;
    /**
     * @stable [17.05.2020]
     * @param {PlaceEntityValueT} placeEntity
     * @returns {string}
     */
    private $fromPlaceEntityToDisplayValue;
    /**
     * @stable [17.05.2020]
     * @param {PlaceEntityValueT} placeEntity
     * @returns {string}
     */
    private $fromPlaceEntityToPlaceParameter;
    /**
     * @stable [29.08.2020]
     * @param value
     * @private
     */
    private $fromMultiFieldValueToEntities;
    /**
     * @stable [13.12.2020]
     * @param value
     */
    $fromNotMultiFieldValueToEntities<TEntity extends IEntity = IEntity>(value: NotMultiFieldValueT<TEntity>): TEntity[];
    /**
     * @stable [03.09.2020]
     * @param value
     * @private
     */
    private $fromMultiFieldValueToEditEntities;
    /**
     * @stable [21.01.2021]
     * @param value
     */
    private $fromMultiFieldValueToDefinedEntities;
    /**
     * @stable [04.09.2020]
     * @param value
     * @private
     */
    private $fromMultiFieldValueToTrueEntitiesObject;
    /**
     * @stable [18.05.2020]
     * @param value
     * @private
     */
    private $fromSelectValueToId;
    /**
     * @stable [28.10.2020]
     * @param value
     * @private
     */
    private $fromSelectValueToRawValue;
    /**
     * @stable [16.05.2020]
     * @param {IFieldConverterConfigEntity} config
     * @returns {string}
     */
    private asKey;
}
