import { LocationEnum, MeasurandEnum, OCPP1_6, PhaseEnum, ReadingContextEnum, type MeterValueDto, type SampledValue } from '@citrineos/base';
export declare class MeterValueMapper {
    /**
     * Converts native ReadingContextEnum to OCPP 1.6 MeterValuesRequestContext
     */
    static toReadingContextEnumType(context?: keyof typeof ReadingContextEnum | null): OCPP1_6.MeterValuesRequestContext | undefined;
    /**
     * Converts OCPP 1.6 MeterValuesRequestContext to native ReadingContextEnum
     */
    static fromReadingContextEnumType(context?: OCPP1_6.MeterValuesRequestContext | null): keyof typeof ReadingContextEnum | undefined;
    /**
     * Converts native MeasurandEnum to OCPP 1.6 MeterValuesRequestMeasurand
     */
    static toMeasurandEnumType(measurand?: keyof typeof MeasurandEnum | null): OCPP1_6.MeterValuesRequestMeasurand | undefined;
    /**
     * Converts OCPP 1.6 MeterValuesRequestMeasurand to native MeasurandEnum
     */
    static fromMeasurandEnumType(measurand?: OCPP1_6.MeterValuesRequestMeasurand | null): keyof typeof MeasurandEnum | undefined;
    /**
     * Converts native LocationEnum to OCPP 1.6 MeterValuesRequestLocation
     */
    static toLocationEnumType(location?: keyof typeof LocationEnum | null): OCPP1_6.MeterValuesRequestLocation | undefined;
    /**
     * Converts OCPP 1.6 MeterValuesRequestLocation to native LocationEnum
     */
    static fromLocationEnumType(location?: OCPP1_6.MeterValuesRequestLocation | null): keyof typeof LocationEnum | undefined;
    /**
     * Converts native PhaseEnum to OCPP 1.6 MeterValuesRequestPhase
     */
    static toPhaseEnumType(phase?: keyof typeof PhaseEnum | null): OCPP1_6.MeterValuesRequestPhase | undefined;
    /**
     * Converts OCPP 1.6 MeterValuesRequestPhase to native PhaseEnum
     */
    static fromPhaseEnumType(phase?: OCPP1_6.MeterValuesRequestPhase | null): keyof typeof PhaseEnum | undefined;
    /**
     * Converts native UnitOfMeasure to OCPP 1.6 MeterValuesRequestUnit
     */
    static toUnitEnumType(unit?: string | null): OCPP1_6.MeterValuesRequestUnit | undefined;
    /**
     * Converts OCPP 1.6 MeterValuesRequestUnit to native unit string
     */
    static fromUnitEnumType(unit?: OCPP1_6.MeterValuesRequestUnit | null): string | undefined;
    /**
     * OCPP 1.6 SampledValue type (inline from MeterValuesRequest)
     */
    static toSampledValueType(sampledValue: SampledValue): OCPP1_6.MeterValuesRequest['meterValue'][0]['sampledValue'][0];
    static toMeterValueType(meterValue: MeterValueDto): OCPP1_6.MeterValuesRequest['meterValue'][0];
    static toSampledValueTypes(sampledValues: SampledValue[]): OCPP1_6.MeterValuesRequest['meterValue'][0]['sampledValue'];
    /**
     * Validates the format field for OCPP 1.6 sampledValue.
     */
    static validateFormat(format?: OCPP1_6.MeterValuesRequestFormat | null): boolean;
    /**
     * Converts OCPP 1.6 sampledValue to native SampledValue
     */
    static fromSampledValueType(sampledValueType: OCPP1_6.MeterValuesRequest['meterValue'][0]['sampledValue'][0]): SampledValue | undefined;
    /**
     * Converts OCPP 1.6 SampledValueType[] back to SampledValue[]
     */
    static fromSampledValueTypes(sampledValueTypes: OCPP1_6.MeterValuesRequest['meterValue'][0]['sampledValue']): [SampledValue, ...SampledValue[]];
    /**
     * Converts OCPP 1.6 MeterValueType back to a partial MeterValue structure
     */
    static fromMeterValueType(meterValueType: OCPP1_6.MeterValuesRequest['meterValue'][0]): MeterValueDto;
}
