export type TemplateParameterType = "text" | "currency" | "date_time" | "image" | "document" | "video";
export interface TemplateTextParameter {
    type: "text";
    text: string;
}
export interface TemplateCurrencyParameter {
    type: "currency";
    currency: {
        fallback_value: string;
        code: string;
        amount_1000: number;
    };
}
export interface TemplateDateTimeParameter {
    type: "date_time";
    date_time: {
        fallback_value: string;
    };
}
export interface TemplateMediaParameter {
    type: "image" | "document" | "video";
    image?: {
        link: string;
        caption?: string | undefined;
        filename?: string | undefined;
    } | undefined;
    document?: {
        link: string;
        caption?: string | undefined;
        filename?: string | undefined;
    } | undefined;
    video?: {
        link: string;
        caption?: string | undefined;
        filename?: string | undefined;
    } | undefined;
}
export type TemplateParameter = TemplateTextParameter | TemplateCurrencyParameter | TemplateDateTimeParameter | TemplateMediaParameter | {
    type: string;
    [key: string]: any;
};
export interface TemplateComponent {
    type: "header" | "body" | "button";
    sub_type?: "url" | "quick_reply" | undefined;
    index?: string | number | undefined;
    parameters?: TemplateParameter[] | undefined;
}
export interface SendTemplateParams {
    to: string;
    userName?: string | undefined;
    templateName?: string | undefined;
    campaignName?: string | undefined;
    languageCode?: string | undefined;
    parameters?: TemplateParameter[] | undefined;
    components?: TemplateComponent[] | undefined;
    templateParams?: string[] | undefined;
}
export interface SendDeliveryUpdateParams {
    phone: string;
    customerName: string;
    orderNumber: string;
    deliveryDate: string;
    deliveryTime: string;
    languageCode?: string | undefined;
}
export interface SendCustomerPaymentReceivedParams {
    phone: string;
    customerName: string;
    paymentAmount: string | number;
    paymentDate: string;
    remainingBalance: string | number;
    languageCode?: string | undefined;
}
export interface WhatsAppServiceResult<T = any> {
    success: boolean;
    data?: T | undefined;
    error?: string | undefined;
    messageId?: string | undefined;
}
export interface WhatsAppConfig {
    apiUrl: string;
    apiKey: string;
    phoneNumberId?: string | undefined;
}
export interface SendSupplierPaymentMessageParams {
    phone: string;
    supplierName: string;
    paymentAmount: string | number;
    paymentDate: string;
    paymentMode: string;
    referenceNumber: string;
    remainingBalance: string | number;
    languageCode?: string | undefined;
}
export interface SendSupplierBoxReturnMessageParams {
    phone: string;
    supplierName: string;
    totalBoxesPurchased: string | number;
    vegetableName: string;
    returnedBoxes: string | number;
    retainedBoxes: string | number;
    languageCode?: string | undefined;
}
export interface SendInvoiceReadyParams {
    phone: string;
    customerName: string;
    invoiceNo: string;
    invoiceAmount: string | number;
    invoiceUuid?: string | undefined;
    invoiceUrl?: string | undefined;
    languageCode?: string | undefined;
}
//# sourceMappingURL=whatsapp.types.d.ts.map