/**
 * MQTT Trigger Node - Version 1
 * Listens to MQTT events
 */


export interface MqttTriggerV1Params {
/**
 * Topics to subscribe to, multiple can be defined with comma. Wildcard characters are supported (+ - for single level and # - for multi level). By default all subscription used QoS=0. To set a different QoS, write the QoS desired after the topic preceded by a colom. For Example: topicA:1,topicB:2
 */
    topics?: string | Expression<string> | PlaceholderValue;
  options?: {
    /** Whether to try parse the message to an object
     * @default false
     */
    jsonParseBody?: boolean | Expression<boolean>;
    /** Whether to return only the message property
     * @default false
     */
    onlyMessage?: boolean | Expression<boolean>;
    /** Whether to process messages in parallel or by keeping the message in order
     * @default true
     */
    parallelProcessing?: boolean | Expression<boolean>;
  };
}

export interface MqttTriggerV1Credentials {
  mqtt: CredentialReference;
}

interface MqttTriggerV1NodeBase {
  type: 'n8n-nodes-base.mqttTrigger';
  version: 1;
  credentials?: MqttTriggerV1Credentials;
  isTrigger: true;
}

export type MqttTriggerV1ParamsNode = MqttTriggerV1NodeBase & {
  config: NodeConfig<MqttTriggerV1Params>;
};

export type MqttTriggerV1Node = MqttTriggerV1ParamsNode;