/**
 * Matrix Node - Version 1
 * Discriminator: resource=message, operation=create
 */


interface Credentials {
  matrixApi: CredentialReference;
}

/** Send a message to a room */
export type MatrixV1MessageCreateParams = {
  resource: 'message';
  operation: 'create';
/**
 * The channel to send the message 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;.
 */
    roomId?: string | Expression<string>;
/**
 * The text to send
 */
    text?: string | Expression<string> | PlaceholderValue;
/**
 * The type of message to send
 * @default m.text
 */
    messageType?: 'm.emote' | 'm.notice' | 'm.text' | Expression<string>;
/**
 * The format of the message's body
 * @default plain
 */
    messageFormat?: 'plain' | 'org.matrix.custom.html' | Expression<string>;
/**
 * A plain text message to display in case the HTML cannot be rendered by the Matrix client
 * @displayOptions.show { messageFormat: ["org.matrix.custom.html"] }
 */
    fallbackText?: string | Expression<string> | PlaceholderValue;
};

export type MatrixV1MessageCreateOutput = {
  event_id?: string;
};

export type MatrixV1MessageCreateNode = {
  type: 'n8n-nodes-base.matrix';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<MatrixV1MessageCreateParams>;
  output?: Items<MatrixV1MessageCreateOutput>;
};