/**
 * Telegram Node - Version 1.2
 * Discriminator: resource=callback, operation=answerQuery
 */


interface Credentials {
  telegramApi: CredentialReference;
}

/** Send answer to callback query sent from inline keyboard */
export type TelegramV12CallbackAnswerQueryParams = {
  resource: 'callback';
  operation: 'answerQuery';
/**
 * Unique identifier for the query to be answered
 */
    queryId?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** The maximum amount of time in seconds that the result of the callback query may be cached client-side
     * @default 0
     */
    cache_time?: number | Expression<number>;
    /** Whether an alert will be shown by the client instead of a notification at the top of the chat screen
     * @default false
     */
    show_alert?: boolean | Expression<boolean>;
    /** Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters.
     */
    text?: string | Expression<string> | PlaceholderValue;
    /** URL that will be opened by the user's client
     */
    url?: 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 TelegramV12CallbackAnswerQueryOutput = {
  ok?: boolean;
  result?: boolean;
};

export type TelegramV12CallbackAnswerQueryNode = {
  type: 'n8n-nodes-base.telegram';
  version: 1.2;
  credentials?: Credentials;
  config: NodeConfig<TelegramV12CallbackAnswerQueryParams>;
  output?: Items<TelegramV12CallbackAnswerQueryOutput>;
};