/**
 * Vero Node - Version 1
 * Discriminator: resource=event, operation=track
 */


interface Credentials {
  veroApi: CredentialReference;
}

/** Track events based on actions your customers take in real time */
export type VeroV1EventTrackParams = {
  resource: 'event';
  operation: 'track';
/**
 * The unique identifier of the customer
 */
    id?: string | Expression<string> | PlaceholderValue;
/**
 * Email
 */
    email?: string | Expression<string> | PlaceholderValue;
/**
 * The name of the event tracked
 */
    eventName?: string | Expression<string> | PlaceholderValue;
/**
 * JSON Parameters
 * @default false
 */
    jsonParameters?: boolean | Expression<boolean>;
/**
 * Key value pairs that represent any properties you want to track with this event
 * @displayOptions.show { jsonParameters: [false] }
 * @default {}
 */
    dataAttributesUi?: {
        /** Data
     */
    dataAttributesValues?: Array<{
      /** Name of the property to set
       */
      key?: string | Expression<string> | PlaceholderValue;
      /** Value of the property to set
       */
      value?: string | Expression<string> | PlaceholderValue;
    }>;
  };
/**
 * Key value pairs that represent reserved, Vero-specific operators. Refer to the note on “deduplication” below.
 * @displayOptions.show { jsonParameters: [false] }
 * @default {}
 */
    extraAttributesUi?: {
        /** Extra
     */
    extraAttributesValues?: Array<{
      /** Name of the property to set
       */
      key?: string | Expression<string> | PlaceholderValue;
      /** Value of the property to set
       */
      value?: string | Expression<string> | PlaceholderValue;
    }>;
  };
/**
 * Key value pairs that represent the custom user properties you want to update
 * @displayOptions.show { jsonParameters: [true] }
 */
    dataAttributesJson?: IDataObject | string | Expression<string>;
/**
 * Key value pairs that represent reserved, Vero-specific operators. Refer to the note on “deduplication” below.
 * @displayOptions.show { jsonParameters: [true] }
 */
    extraAttributesJson?: IDataObject | string | Expression<string>;
};

export type VeroV1EventTrackNode = {
  type: 'n8n-nodes-base.vero';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<VeroV1EventTrackParams>;
};