/**
 * HubSpot Trigger Node - Version 1
 * Starts the workflow when HubSpot events occur
 */


export interface HubspotTriggerV1Params {
  eventsUi?: {
        /** Event
     */
    eventValues?: Array<{
      /** Name
       * @default contact.creation
       */
      name?: 'company.creation' | 'company.deletion' | 'company.propertyChange' | 'contact.creation' | 'contact.deletion' | 'contact.privacyDeletion' | 'contact.propertyChange' | 'conversation.creation' | 'conversation.deletion' | 'conversation.newMessage' | 'conversation.privacyDeletion' | 'conversation.propertyChange' | 'deal.creation' | 'deal.deletion' | 'deal.propertyChange' | 'ticket.creation' | 'ticket.deletion' | 'ticket.propertyChange' | Expression<string>;
      /** Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
       * @displayOptions.show { name: ["contact.propertyChange"] }
       */
      property?: string | Expression<string>;
      /** Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
       * @displayOptions.show { name: ["company.propertyChange"] }
       */
      property?: string | Expression<string>;
      /** Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
       * @displayOptions.show { name: ["deal.propertyChange"] }
       */
      property?: string | Expression<string>;
    }>;
  };
  additionalFields?: {
    /** Max Concurrent Requests
     * @default 5
     */
    maxConcurrentRequests?: number | Expression<number>;
  };
}

export interface HubspotTriggerV1Credentials {
  hubspotDeveloperApi: CredentialReference;
}

interface HubspotTriggerV1NodeBase {
  type: 'n8n-nodes-base.hubspotTrigger';
  version: 1;
  credentials?: HubspotTriggerV1Credentials;
  isTrigger: true;
}

export type HubspotTriggerV1ParamsNode = HubspotTriggerV1NodeBase & {
  config: NodeConfig<HubspotTriggerV1Params>;
};

export type HubspotTriggerV1Node = HubspotTriggerV1ParamsNode;