/**
 * @example
 *     {
 *         events: [{
 *                 event_name: "order_created",
 *                 identifiers: {}
 *             }]
 *     }
 */
export interface CreateBatchEventsRequest {
    events: CreateBatchEventsRequest.Events.Item[];
}
export declare namespace CreateBatchEventsRequest {
    type Events = Events.Item[];
    namespace Events {
        interface Item {
            /** Properties defining the state of the contact associated to this event. Useful to update contact attributes defined in your contacts database while passing the event. For example: **"FIRSTNAME": "Jane" , "AGE": 37** */
            contact_properties?: Record<string, Item.ContactProperties.Value> | undefined;
            /** Timestamp of when the event occurred (e.g. "2024-01-24T17:39:57+01:00"). If no value is passed, the timestamp of the event creation is used. */
            event_date?: string | undefined;
            /** The name of the event that occurred. This is how you will find your event in Brevo. Limited to 255 characters, alphanumerical characters and - _ only. */
            event_name: string;
            /** Properties of the event. Top level properties and nested properties can be used to better segment contacts and personalise workflow conditions. The following field type are supported: string, number, boolean (true/false), date (Timestamp e.g. "2024-01-24T17:39:57+01:00"). Keys are limited to 255 characters, alphanumerical characters and - _ only. Size is limited to 50Kb. */
            event_properties?: Record<string, Item.EventProperties.Value> | undefined;
            /** Identifies the contact associated with the event. At least one identifier is required. */
            identifiers: Item.Identifiers;
            /** Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account. */
            object?: Item.Object_ | undefined;
        }
        namespace Item {
            namespace ContactProperties {
                type Value = string | number;
            }
            namespace EventProperties {
                type Value = string | number | Record<string, unknown> | unknown[];
            }
            /**
             * Identifies the contact associated with the event. At least one identifier is required.
             */
            interface Identifiers {
                /** Internal unique contact ID. When present, this takes priority over all other identifiers for event attribution and contact resolution. */
                contact_id?: number | undefined;
                /** Email Id associated with the event */
                email_id?: string | undefined;
                /** ext_id associated with the event */
                ext_id?: string | undefined;
                /** landline_number associated with the event */
                landline_number_id?: string | undefined;
                /** SMS associated with the event */
                phone_id?: string | undefined;
                /** whatsapp associated with the event */
                whatsapp_id?: string | undefined;
            }
            /**
             * Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account.
             */
            interface Object_ {
                /** Identifiers for the object. */
                identifiers?: Object_.Identifiers | undefined;
                /** Type of object (e.g., subscription, vehicle, etc.) */
                type?: string | undefined;
            }
            namespace Object_ {
                /**
                 * Identifiers for the object.
                 */
                interface Identifiers {
                    /** External object ID */
                    ext_id?: string | undefined;
                    /** Internal object ID */
                    id?: string | undefined;
                }
            }
        }
    }
}
