// Path: src/com/cadiducho/minegram/api/inline/InlineKeyboardMarkup.java
// @ToString
// @Getter @Setter
// public class InlineKeyboardMarkup {
// 
//     /**
//      * Array of button rows, each represented by an Array of {@link InlineKeyboardButton} objects
//      */
//     private List<List<InlineKeyboardButton>> inline_keyboard;
// }
// 
// Path: src/com/cadiducho/minegram/api/inline/InlineQueryResult.java
// @ToString
// @Getter @Setter
// public abstract class InlineQueryResult {
//     
//     /**
//      * Type of the result
//      */
//     protected final String type;
// 
//     /**
//      * Unique identifier for this result, 1-64 Bytes
//      */
//     protected String id;
//     
//     /**
//      * Optional. Inline keyboard attached to the message
//      */
//     protected InlineKeyboardMarkup reply_markup;
//     
//     /**
//      * Optional. Content of the message to be sent instead of the file
//      */
//     protected InputMessageContent input_message_content;
// 
//     public InlineQueryResult(String type) {
//         this.type = type;
//         this.id = UUID.randomUUID().toString().replace("-", "") + UUID.randomUUID().toString().replace("-", "");
//     }
// 
// }
// 
// Path: src/com/cadiducho/minegram/api/payment/LabeledPrice.java
// @ToString
// @Getter @Setter
// public class LabeledPrice {
//     
//     /**
//      * Portion label
//      */
//     private String label;
//     
//     /**
//      * Price of the product in the smallest units of the currency (integer, not float/double).
//      * For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in https://core.telegram.org/bots/payments/currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
//      */
//     private Integer amount;
//     
// }
// 
// Path: src/com/cadiducho/minegram/api/payment/ShippingOption.java
// @ToString
// @Getter @Setter
// public class ShippingOption {
//     
//     /**
//      * Shipping option identifier
//      */
//     private String id;
//     
//     /**
//      * Option title
//      */
//     private String title;
//     
//     /**
//      * List of price portions
//      */
//     private List<LabeledPrice> prices;
//     
// }


import com.cadiducho.minegram.api.inline.InlineKeyboardMarkup;
import com.cadiducho.minegram.api.inline.InlineQueryResult;
import com.cadiducho.minegram.api.*;
import com.cadiducho.minegram.api.exception.*;
import com.cadiducho.minegram.api.payment.LabeledPrice;
import com.cadiducho.minegram.api.payment.ShippingOption;
import java.util.List;
import org.bukkit.plugin.Plugin;
     */
    public Message sendInvoice(Integer chat_id, String title, String description, String payload, String provider_token, String start_parameter, String currency,
                                    List<LabeledPrice> prices) throws TelegramException;
    
    /**
     * Use this method to send invoices. On success, the sent Message is returned.
     * @param chat_id Unique identifier for the target private chat
     * @param title Product name
     * @param description Product description
     * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.
     * @param provider_token Payments provider token, obtained via Botfather
     * @param start_parameter Unique deep-linking parameter that can be used to generate this invoice when used as a start parameter
     * @param currency Three-letter ISO 4217 currency code, see more on https://core.telegram.org/bots/payments#supported-currencies
     * @param prices Price breakdown, a list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.)
     * @param photo_url URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for.
     * @param photo_size Photo size
     * @param photo_width Photo width
     * @param photo_height Photo height
     * @param need_name Pass True, if you require the user's full name to complete the order
     * @param need_phone_number Pass True, if you require the user's phone number to complete the order
     * @param need_email Pass True, if you require the user's email to complete the order
     * @param need_shipping_address Pass True, if you require the user's shipping address to complete the order
     * @param is_flexible Pass True, if the final price depends on the shipping method
     * @param disable_notification Sends the message silently. Users will receive a notification with no sound.
     * @param reply_to_message_id If the message is a reply, ID of the original message
     * @param reply_markup A JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown. If not empty, the first button must be a Pay button.
     * @return {@link Message}
     * @throws com.cadiducho.minegram.api.exception.TelegramException
     */
    public Message sendInvoice(Integer chat_id, String title, String description, String payload, String provider_token, String start_parameter, String currency,
// Path: src/com/cadiducho/minegram/api/inline/InlineKeyboardMarkup.java
// @ToString
// @Getter @Setter
// public class InlineKeyboardMarkup {
// 
//     /**
//      * Array of button rows, each represented by an Array of {@link InlineKeyboardButton} objects
//      */
//     private List<List<InlineKeyboardButton>> inline_keyboard;
// }
// 
// Path: src/com/cadiducho/minegram/api/inline/InlineQueryResult.java
// @ToString
// @Getter @Setter
// public abstract class InlineQueryResult {
//     
//     /**
//      * Type of the result
//      */
//     protected final String type;
// 
//     /**
//      * Unique identifier for this result, 1-64 Bytes
//      */
//     protected String id;
//     
//     /**
//      * Optional. Inline keyboard attached to the message
//      */
//     protected InlineKeyboardMarkup reply_markup;
//     
//     /**
//      * Optional. Content of the message to be sent instead of the file
//      */
//     protected InputMessageContent input_message_content;
// 
//     public InlineQueryResult(String type) {
//         this.type = type;
//         this.id = UUID.randomUUID().toString().replace("-", "") + UUID.randomUUID().toString().replace("-", "");
//     }
// 
// }
// 
// Path: src/com/cadiducho/minegram/api/payment/LabeledPrice.java
// @ToString
// @Getter @Setter
// public class LabeledPrice {
//     
//     /**
//      * Portion label
//      */
//     private String label;
//     
//     /**
//      * Price of the product in the smallest units of the currency (integer, not float/double).
//      * For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in https://core.telegram.org/bots/payments/currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
//      */
//     private Integer amount;
//     
// }
// 
// Path: src/com/cadiducho/minegram/api/payment/ShippingOption.java
// @ToString
// @Getter @Setter
// public class ShippingOption {
//     
//     /**
//      * Shipping option identifier
//      */
//     private String id;
//     
//     /**
//      * Option title
//      */
//     private String title;
//     
//     /**
//      * List of price portions
//      */
//     private List<LabeledPrice> prices;
//     
// }


// Path: src/com/cadiducho/minegram/BotAPI.java
import com.cadiducho.minegram.api.inline.InlineKeyboardMarkup;
import com.cadiducho.minegram.api.inline.InlineQueryResult;
import com.cadiducho.minegram.api.*;
import com.cadiducho.minegram.api.exception.*;
import com.cadiducho.minegram.api.payment.LabeledPrice;
import com.cadiducho.minegram.api.payment.ShippingOption;
import java.util.List;
import org.bukkit.plugin.Plugin;

     */
    public Message sendInvoice(Integer chat_id, String title, String description, String payload, String provider_token, String start_parameter, String currency,
                                    List<LabeledPrice> prices) throws TelegramException;
    
    /**
     * Use this method to send invoices. On success, the sent Message is returned.
     * @param chat_id Unique identifier for the target private chat
     * @param title Product name
     * @param description Product description
     * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.
     * @param provider_token Payments provider token, obtained via Botfather
     * @param start_parameter Unique deep-linking parameter that can be used to generate this invoice when used as a start parameter
     * @param currency Three-letter ISO 4217 currency code, see more on https://core.telegram.org/bots/payments#supported-currencies
     * @param prices Price breakdown, a list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.)
     * @param photo_url URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for.
     * @param photo_size Photo size
     * @param photo_width Photo width
     * @param photo_height Photo height
     * @param need_name Pass True, if you require the user's full name to complete the order
     * @param need_phone_number Pass True, if you require the user's phone number to complete the order
     * @param need_email Pass True, if you require the user's email to complete the order
     * @param need_shipping_address Pass True, if you require the user's shipping address to complete the order
     * @param is_flexible Pass True, if the final price depends on the shipping method
     * @param disable_notification Sends the message silently. Users will receive a notification with no sound.
     * @param reply_to_message_id If the message is a reply, ID of the original message
     * @param reply_markup A JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown. If not empty, the first button must be a Pay button.
     * @return {@link Message}
     * @throws com.cadiducho.minegram.api.exception.TelegramException
     */
    public Message sendInvoice(Integer chat_id, String title, String description, String payload, String provider_token, String start_parameter, String currency,
                                    List<LabeledPrice> prices, String photo_url, Integer photo_size, Integer photo_width, Integer photo_height, Boolean need_name, Boolean need_phone_number,