/**
 * Telegram Node - Version 1.1
 * Discriminator: resource=chat, operation=setDescription
 */


interface Credentials {
  telegramApi: CredentialReference;
}

/** Set the description of a chat */
export type TelegramV11ChatSetDescriptionParams = {
  resource: 'chat';
  operation: 'setDescription';
/**
 * Unique identifier for the target chat or username, To find your chat ID ask @get_id_bot
 */
    chatId?: string | Expression<string> | PlaceholderValue;
/**
 * New chat description, 0-255 characters
 */
    description?: string | Expression<string> | PlaceholderValue;
/**
 * Adds a custom keyboard with reply options
 * @displayOptions.show { replyMarkup: ["replyKeyboard"] }
 * @default {}
 */
    replyKeyboard?: {
        /** Rows
     */
    rows?: Array<{
      /** The value to set
       * @default {}
       */
      row?: {
        /** Buttons
     */
    buttons?: Array<{
      /** Text of the button. If none of the optional fields are used, it will be sent as a message when the button is pressed.
       */
      text?: string | Expression<string> | PlaceholderValue;
      /** Additional Fields
       * @default {}
       */
      additionalFields?: {
    /** Whether the user's phone number will be sent as a contact when the button is pressed.Available in private chats only
     * @default false
     */
    request_contact?: boolean | Expression<boolean>;
    /** Whether the user's request_location
     * @default false
     */
    request_location?: boolean | Expression<boolean>;
    /** Launch the Telegram Web App
     * @default {}
     */
    web_app?: {
    /** An HTTPS URL of a Web App to be opened
     */
    url?: string | Expression<string> | PlaceholderValue;
  };
  };
    }>;
  };
    }>;
  };
/**
 * Reply Keyboard Options
 * @displayOptions.show { replyMarkup: ["replyKeyboard"] }
 * @default {}
 */
    replyKeyboardOptions?: {
    /** Whether to request clients to resize the keyboard vertically for optimal fit
     * @default false
     */
    resize_keyboard?: boolean | Expression<boolean>;
    /** Whether to request clients to hide the keyboard as soon as it's been used
     * @default false
     */
    one_time_keyboard?: boolean | Expression<boolean>;
    /** Whether to show the keyboard to specific users only
     * @default false
     */
    selective?: boolean | Expression<boolean>;
  };
/**
 * Reply Keyboard Remove
 * @displayOptions.show { replyMarkup: ["replyKeyboardRemove"] }
 * @default {}
 */
    replyKeyboardRemove?: {
    /** Whether to request clients to remove the custom keyboard
     * @default false
     */
    remove_keyboard?: boolean | Expression<boolean>;
    /** Whether to force reply from specific users only
     * @default false
     */
    selective?: boolean | Expression<boolean>;
  };
};

export type TelegramV11ChatSetDescriptionNode = {
  type: 'n8n-nodes-base.telegram';
  version: 1.1;
  credentials?: Credentials;
  config: NodeConfig<TelegramV11ChatSetDescriptionParams>;
};