/**
 * Emelia Node - Version 1
 * Discriminator: resource=campaign, operation=addContact
 */


interface Credentials {
  emeliaApi: CredentialReference;
}

export type EmeliaV1CampaignAddContactParams = {
  resource: 'campaign';
  operation: 'addContact';
/**
 * The ID of the campaign to add the contact to. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
 * @default []
 */
    campaignId?: string | Expression<string>;
/**
 * The email of the contact to add to the campaign
 */
    contactEmail?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** Filter by custom fields
     * @default {}
     */
    customFieldsUi?: {
        /** Custom Field
     */
    customFieldsValues?: Array<{
      /** The name of the field to add custom field to
       */
      fieldName?: string | Expression<string> | PlaceholderValue;
      /** The value to set on custom field
       */
      value?: string | Expression<string> | PlaceholderValue;
    }>;
  };
    /** First name of the contact to add
     */
    firstName?: string | Expression<string> | PlaceholderValue;
    /** Last contacted date of the contact to add
     */
    lastContacted?: string | Expression<string>;
    /** Last name of the contact to add
     */
    lastName?: string | Expression<string> | PlaceholderValue;
    /** Last opened date of the contact to add
     */
    lastOpen?: string | Expression<string>;
    /** Last replied date of the contact to add
     */
    lastReplied?: string | Expression<string>;
    /** Number of emails sent to the contact to add
     * @default 0
     */
    mailsSent?: number | Expression<number>;
    /** Phone number of the contact to add
     */
    phoneNumber?: string | Expression<string> | PlaceholderValue;
  };
};

export type EmeliaV1CampaignAddContactNode = {
  type: 'n8n-nodes-base.emelia';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<EmeliaV1CampaignAddContactParams>;
};