/**
 * Sampled_ Value. Context. Reading_ Context_ Code
 * urn:x-oca:ocpp:uid:1:569261
 * Type of detail value: start, end or sample. Default = "Sample.Periodic"
 *
 */
export declare type ReadingContextEnumType = 'Interruption.Begin' | 'Interruption.End' | 'Other' | 'Sample.Clock' | 'Sample.Periodic' | 'Transaction.Begin' | 'Transaction.End' | 'Trigger';
/**
 * Sampled_ Value. Measurand. Measurand_ Code
 * urn:x-oca:ocpp:uid:1:569263
 * Type of measurement. Default = "Energy.Active.Import.Register"
 *
 */
export declare type MeasurandEnumType = 'Current.Export' | 'Current.Import' | 'Current.Offered' | 'Energy.Active.Export.Register' | 'Energy.Active.Import.Register' | 'Energy.Reactive.Export.Register' | 'Energy.Reactive.Import.Register' | 'Energy.Active.Export.Interval' | 'Energy.Active.Import.Interval' | 'Energy.Active.Net' | 'Energy.Reactive.Export.Interval' | 'Energy.Reactive.Import.Interval' | 'Energy.Reactive.Net' | 'Energy.Apparent.Net' | 'Energy.Apparent.Import' | 'Energy.Apparent.Export' | 'Frequency' | 'Power.Active.Export' | 'Power.Active.Import' | 'Power.Factor' | 'Power.Offered' | 'Power.Reactive.Export' | 'Power.Reactive.Import' | 'SoC' | 'Voltage';
/**
 * Sampled_ Value. Phase. Phase_ Code
 * urn:x-oca:ocpp:uid:1:569264
 * Indicates how the measured value is to be interpreted. For instance between L1 and neutral (L1-N) Please note that not all values of phase are applicable to all Measurands. When phase is absent, the measured value is interpreted as an overall value.
 *
 */
export declare type PhaseEnumType = 'L1' | 'L2' | 'L3' | 'N' | 'L1-N' | 'L2-N' | 'L3-N' | 'L1-L2' | 'L2-L3' | 'L3-L1';
/**
 * Sampled_ Value. Location. Location_ Code
 * urn:x-oca:ocpp:uid:1:569265
 * Indicates where the measured value has been sampled. Default =  "Outlet"
 *
 *
 */
export declare type LocationEnumType = 'Body' | 'Cable' | 'EV' | 'Inlet' | 'Outlet';
/**
 * Request_ Body
 * urn:x-enexis:ecdm:uid:2:234744
 *
 */
export default interface MeterValuesRequest {
    customData?: CustomDataType;
    /**
     * Request_ Body. EVSEID. Numeric_ Identifier
     * urn:x-enexis:ecdm:uid:1:571101
     * This contains a number (&gt;0) designating an EVSE of the Charging Station. ‘0’ (zero) is used to designate the main power meter.
     *
     */
    evseId: number;
    meterValue: [MeterValueType, ...MeterValueType[]];
}
/**
 * This class does not get 'AdditionalProperties = false' in the schema generation, so it can be extended with arbitrary JSON properties to allow adding custom data.
 */
export interface CustomDataType {
    vendorId: string;
    [k: string]: unknown;
}
/**
 * Meter_ Value
 * urn:x-oca:ocpp:uid:2:233265
 * Collection of one or more sampled values in MeterValuesRequest and TransactionEvent. All sampled values in a MeterValue are sampled at the same point in time.
 *
 */
export interface MeterValueType {
    customData?: CustomDataType;
    sampledValue: [SampledValueType, ...SampledValueType[]];
    /**
     * Meter_ Value. Timestamp. Date_ Time
     * urn:x-oca:ocpp:uid:1:569259
     * Timestamp for measured value(s).
     *
     */
    timestamp: string;
}
/**
 * Sampled_ Value
 * urn:x-oca:ocpp:uid:2:233266
 * Single sampled value in MeterValues. Each value can be accompanied by optional fields.
 *
 * To save on mobile data usage, default values of all of the optional fields are such that. The value without any additional fields will be interpreted, as a register reading of active import energy in Wh (Watt-hour) units.
 *
 */
export interface SampledValueType {
    customData?: CustomDataType;
    /**
     * Sampled_ Value. Value. Measure
     * urn:x-oca:ocpp:uid:1:569260
     * Indicates the measured value.
     *
     *
     */
    value: number;
    context?: ReadingContextEnumType;
    measurand?: MeasurandEnumType;
    phase?: PhaseEnumType;
    location?: LocationEnumType;
    signedMeterValue?: SignedMeterValueType;
    unitOfMeasure?: UnitOfMeasureType;
}
/**
 * Represent a signed version of the meter value.
 *
 */
export interface SignedMeterValueType {
    customData?: CustomDataType;
    /**
     * Base64 encoded, contains the signed data which might contain more then just the meter value. It can contain information like timestamps, reference to a customer etc.
     *
     */
    signedMeterData: string;
    /**
     * Method used to create the digital signature.
     *
     */
    signingMethod: string;
    /**
     * Method used to encode the meter values before applying the digital signature algorithm.
     *
     */
    encodingMethod: string;
    /**
     * Base64 encoded, sending depends on configuration variable _PublicKeyWithSignedMeterValue_.
     *
     */
    publicKey: string;
}
/**
 * Represents a UnitOfMeasure with a multiplier
 *
 */
export interface UnitOfMeasureType {
    customData?: CustomDataType;
    /**
     * Unit of the value. Default = "Wh" if the (default) measurand is an "Energy" type.
     * This field SHALL use a value from the list Standardized Units of Measurements in Part 2 Appendices.
     * If an applicable unit is available in that list, otherwise a "custom" unit might be used.
     *
     */
    unit?: string;
    /**
     * Multiplier, this value represents the exponent to base 10. I.e. multiplier 3 means 10 raised to the 3rd power. Default is 0.
     *
     */
    multiplier?: number;
}
