/**
 * The type of this monitor, e.g. a threshold, delta or periodic monitor.
 *
 *
 */
export declare type MonitorEnumType = 'UpperThreshold' | 'LowerThreshold' | 'Delta' | 'Periodic' | 'PeriodicClockAligned';
export default interface SetVariableMonitoringRequest {
    customData?: CustomDataType;
    setMonitoringData: [SetMonitoringDataType, ...SetMonitoringDataType[]];
}
/**
 * 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;
}
/**
 * Class to hold parameters of SetVariableMonitoring request.
 *
 */
export interface SetMonitoringDataType {
    customData?: CustomDataType;
    /**
     * An id SHALL only be given to replace an existing monitor. The Charging Station handles the generation of id's for new monitors.
     *
     *
     */
    id?: number;
    /**
     * Monitor only active when a transaction is ongoing on a component relevant to this transaction. Default = false.
     *
     *
     */
    transaction?: boolean;
    /**
     * Value for threshold or delta monitoring.
     * For Periodic or PeriodicClockAligned this is the interval in seconds.
     *
     *
     */
    value: number;
    type: MonitorEnumType;
    /**
     * The severity that will be assigned to an event that is triggered by this monitor. The severity range is 0-9, with 0 as the highest and 9 as the lowest severity level.
     *
     * The severity levels have the following meaning: +
     * *0-Danger* +
     * Indicates lives are potentially in danger. Urgent attention is needed and action should be taken immediately. +
     * *1-Hardware Failure* +
     * Indicates that the Charging Station is unable to continue regular operations due to Hardware issues. Action is required. +
     * *2-System Failure* +
     * Indicates that the Charging Station is unable to continue regular operations due to software or minor hardware issues. Action is required. +
     * *3-Critical* +
     * Indicates a critical error. Action is required. +
     * *4-Error* +
     * Indicates a non-urgent error. Action is required. +
     * *5-Alert* +
     * Indicates an alert event. Default severity for any type of monitoring event.  +
     * *6-Warning* +
     * Indicates a warning event. Action may be required. +
     * *7-Notice* +
     * Indicates an unusual event. No immediate action is required. +
     * *8-Informational* +
     * Indicates a regular operational event. May be used for reporting, measuring throughput, etc. No action is required. +
     * *9-Debug* +
     * Indicates information useful to developers for debugging, not useful during operations.
     *
     *
     */
    severity: number;
    component: ComponentType;
    variable: VariableType;
}
/**
 * A physical or logical component
 *
 */
export interface ComponentType {
    customData?: CustomDataType;
    evse?: EVSEType;
    /**
     * Name of the component. Name should be taken from the list of standardized component names whenever possible. Case Insensitive. strongly advised to use Camel Case.
     *
     */
    name: string;
    /**
     * Name of instance in case the component exists as multiple instances. Case Insensitive. strongly advised to use Camel Case.
     *
     */
    instance?: string;
}
/**
 * EVSE
 * urn:x-oca:ocpp:uid:2:233123
 * Electric Vehicle Supply Equipment
 *
 */
export interface EVSEType {
    customData?: CustomDataType;
    /**
     * Identified_ Object. MRID. Numeric_ Identifier
     * urn:x-enexis:ecdm:uid:1:569198
     * EVSE Identifier. This contains a number (&gt; 0) designating an EVSE of the Charging Station.
     *
     */
    id: number;
    /**
     * An id to designate a specific connector (on an EVSE) by connector index number.
     *
     */
    connectorId?: number;
}
/**
 * Reference key to a component-variable.
 *
 */
export interface VariableType {
    customData?: CustomDataType;
    /**
     * Name of the variable. Name should be taken from the list of standardized variable names whenever possible. Case Insensitive. strongly advised to use Camel Case.
     *
     */
    name: string;
    /**
     * Name of instance in case the variable exists as multiple instances. Case Insensitive. strongly advised to use Camel Case.
     *
     */
    instance?: string;
}
