import { c as ResponseData, R as ResponseSuccess, B as BaseAPI, a as RequesterClass } from './base-BhCbbsxB.js';
import { WabaConfigType } from './shared/types/config.js';

type QrCodeResponse = {
    code: string;
    prefilled_message: string;
    deep_link_url: string;
    qr_image_url?: string;
};
type QrCodesResponse = ResponseData<QrCodeResponse[]>;
type CreateQrCodeRequest = {
    prefilled_message: string;
    generate_qr_image?: 'SVG' | 'PNG';
};
type UpdateQrCodeRequest = {
    code: string;
    prefilled_message: string;
};
interface QrCodeClass {
    createQrCode(request: CreateQrCodeRequest): Promise<QrCodeResponse>;
    getQrCodes(): Promise<QrCodesResponse>;
    getQrCode(qrCodeId: string): Promise<QrCodeResponse>;
    updateQrCode(request: UpdateQrCodeRequest): Promise<QrCodeResponse>;
    deleteQrCode(qrCodeId: string): Promise<ResponseSuccess>;
}

/**
 * API for managing WhatsApp QR Codes.
 *
 * This API allows you to:
 * - Create QR codes with prefilled messages
 * - Get all QR codes
 * - Get specific QR code details
 * - Update QR code messages
 * - Delete QR codes
 */
declare class QrCodeApi extends BaseAPI implements QrCodeClass {
    private readonly endpoint;
    constructor(config: WabaConfigType, client: RequesterClass);
    /**
     * Create a new QR code with a prefilled message.
     *
     * @param request The QR code creation request
     * @returns QR code information including code, deep link URL, and optional image URL
     *
     * @example
     * const qrCode = await whatsappClient.qrCode.createQrCode({
     *   prefilled_message: 'Hello from WhatsApp!',
     *   generate_qr_image: 'PNG'
     * });
     */
    createQrCode(request: CreateQrCodeRequest): Promise<QrCodeResponse>;
    /**
     * Get all QR codes for the current phone number.
     *
     * @returns List of all QR codes
     *
     * @example
     * const qrCodes = await whatsappClient.qrCode.getQrCodes();
     */
    getQrCodes(): Promise<QrCodesResponse>;
    /**
     * Get a specific QR code by ID.
     *
     * @param qrCodeId The QR code ID to retrieve
     * @returns QR code information
     *
     * @example
     * const qrCode = await whatsappClient.qrCode.getQrCode('qr_code_123');
     */
    getQrCode(qrCodeId: string): Promise<QrCodeResponse>;
    /**
     * Update an existing QR code's prefilled message.
     *
     * @param request The QR code update request containing code and new message
     * @returns Updated QR code information
     *
     * @example
     * const updatedQrCode = await whatsappClient.qrCode.updateQrCode({
     *   code: 'existing_qr_code',
     *   prefilled_message: 'Updated message!'
     * });
     */
    updateQrCode(request: UpdateQrCodeRequest): Promise<QrCodeResponse>;
    /**
     * Delete a QR code.
     *
     * @param qrCodeId The QR code ID to delete
     * @returns Response indicating success or failure
     *
     * @example
     * await whatsappClient.qrCode.deleteQrCode('qr_code_123');
     */
    deleteQrCode(qrCodeId: string): Promise<ResponseSuccess>;
}

export { type CreateQrCodeRequest as C, QrCodeApi as Q, type UpdateQrCodeRequest as U, type QrCodeClass as a, type QrCodeResponse as b, type QrCodesResponse as c };
