/// <reference types="@adonisjs/lucid" />
import FormData from 'form-data';
import { GetMessageTemplatesQueryParams, WhatsAppConfig } from '@ioc:Adonis/Addons/WhatsApp';
import { DatabaseContract } from '@ioc:Adonis/Lucid/Database';
export default class WhatsAppClient {
    private config;
    private db;
    /**
     * Custom connection or query client
     */
    private connection?;
    constructor(config: WhatsAppConfig, db: DatabaseContract);
    private headers;
    private mandatory;
    send(data: Record<string, any>, parse?: boolean): Promise<any>;
    media(media: string, from?: number): Promise<any>;
    upload(form: FormData, from?: number): Promise<any>;
    createTemplate(data: Record<string, any>): Promise<any>;
    getTemplates(options?: GetMessageTemplatesQueryParams, from?: number): Promise<any>;
    deleteTemplate(name: string, from?: number): Promise<any>;
    download(url: string, from?: number): Promise<any>;
    private parse;
    private parseMsg91;
    /**
     * Validates if the provided apiProvider is one of the allowed values.
     * @param apiProvider - The apiProvider to validate.
     * @throws {Error} - Throws an error if apiProvider is not valid.
     */
    private validateApiProvider;
    private getHeaders;
}
