/**
 * MailerLite Node - Version 2
 * Discriminator: resource=subscriber, operation=create
 */


interface Credentials {
  mailerLiteApi: CredentialReference;
}

/** Create a new subscriber */
export type MailerLiteV2SubscriberCreateParams = {
  resource: 'subscriber';
  operation: 'create';
/**
 * Email of new subscriber
 */
    email?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** Filter by custom fields
     * @default {}
     */
    customFieldsUi?: {
        /** Custom Field
     */
    customFieldsValues?: Array<{
      /** The ID of the field to add custom field 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;.
       */
      fieldId?: string | Expression<string>;
      /** The value to set on custom field
       */
      value?: string | Expression<string> | PlaceholderValue;
    }>;
  };
    /** Status
     */
    status?: 'active' | 'bounced' | 'junk' | 'unconfirmed' | 'unsubscribed' | Expression<string>;
    /** Subscribed At
     */
    subscribed_at?: string | Expression<string>;
    /** IP Address
     */
    ip_address?: string | Expression<string> | PlaceholderValue;
    /** Opted In At
     */
    opted_in_at?: string | Expression<string>;
    /** Opt In IP
     */
    optin_ip?: string | Expression<string> | PlaceholderValue;
    /** Unsubscribed At
     */
    unsubscribed_at?: string | Expression<string>;
  };
};

export type MailerLiteV2SubscriberCreateOutput = {
  clicks_count?: number;
  created_at?: string;
  email?: string;
  fields?: {
    city?: null;
    country?: null;
    state?: null;
    z_i_p?: null;
  };
  groups?: Array<{
    active_count?: number;
    bounced_count?: number;
    click_rate?: {
      string?: string;
    };
    clicks_count?: number;
    created_at?: string;
    id?: string;
    junk_count?: number;
    name?: string;
    open_rate?: {
      string?: string;
    };
    opens_count?: number;
    sent_count?: number;
    unconfirmed_count?: number;
    unsubscribed_count?: number;
  }>;
  id?: string;
  opens_count?: number;
  opted_in_at?: null;
  optin_ip?: null;
  sent?: number;
  source?: string;
  status?: string;
  subscribed_at?: string;
  unsubscribed_at?: null;
  updated_at?: string;
};

export type MailerLiteV2SubscriberCreateNode = {
  type: 'n8n-nodes-base.mailerLite';
  version: 2;
  credentials?: Credentials;
  config: NodeConfig<MailerLiteV2SubscriberCreateParams>;
  output?: Items<MailerLiteV2SubscriberCreateOutput>;
};