/**
 * Type of monitor that triggered this event, e.g. exceeding a threshold value.
 *
 *
 */
export declare type EventTriggerEnumType = 'Alerting' | 'Delta' | 'Periodic';
/**
 * Specifies the event notification type of the message.
 *
 *
 */
export declare type EventNotificationEnumType = 'HardWiredNotification' | 'HardWiredMonitor' | 'PreconfiguredMonitor' | 'CustomMonitor';
export default interface NotifyEventRequest {
    customData?: CustomDataType;
    /**
     * Timestamp of the moment this message was generated at the Charging Station.
     *
     */
    generatedAt: string;
    /**
     * “to be continued” indicator. Indicates whether another part of the report follows in an upcoming notifyEventRequest message. Default value when omitted is false.
     *
     */
    tbc?: boolean;
    /**
     * Sequence number of this message. First message starts at 0.
     *
     */
    seqNo: number;
    eventData: [EventDataType, ...EventDataType[]];
}
/**
 * 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 report an event notification for a component-variable.
 *
 */
export interface EventDataType {
    customData?: CustomDataType;
    /**
     * Identifies the event. This field can be referred to as a cause by other events.
     *
     *
     */
    eventId: number;
    /**
     * Timestamp of the moment the report was generated.
     *
     */
    timestamp: string;
    trigger: EventTriggerEnumType;
    /**
     * Refers to the Id of an event that is considered to be the cause for this event.
     *
     *
     */
    cause?: number;
    /**
     * Actual value (_attributeType_ Actual) of the variable.
     *
     * The Configuration Variable &lt;&lt;configkey-reporting-value-size,ReportingValueSize&gt;&gt; can be used to limit GetVariableResult.attributeValue, VariableAttribute.value and EventData.actualValue. The max size of these values will always remain equal.
     *
     *
     */
    actualValue: string;
    /**
     * Technical (error) code as reported by component.
     *
     */
    techCode?: string;
    /**
     * Technical detail information as reported by component.
     *
     */
    techInfo?: string;
    /**
     * _Cleared_ is set to true to report the clearing of a monitored situation, i.e. a 'return to normal'.
     *
     *
     */
    cleared?: boolean;
    /**
     * If an event notification is linked to a specific transaction, this field can be used to specify its transactionId.
     *
     */
    transactionId?: string;
    component: ComponentType;
    /**
     * Identifies the VariableMonitoring which triggered the event.
     *
     */
    variableMonitoringId?: number;
    eventNotificationType: EventNotificationEnumType;
    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;
}
