import { Activity, BotAdapter, ConversationReference, ResourceResponse, TurnContext, WebRequest, WebResponse } from "botbuilder";
import { AxiosInstance } from "axios";
import { ITyntecAPIEvent, ITyntecMoMessage, ITyntecMoMessagePostback, ITyntecWhatsAppMessageRequest } from "./tyntec/messages";
export interface ITyntecWhatsAppAdapterSettings {
    axiosInstance: AxiosInstance;
    maxBodySize?: number;
    tyntecApikey: string;
}
export declare class TyntecWhatsAppAdapter extends BotAdapter {
    axiosInstance: AxiosInstance;
    maxBodySize: number;
    tyntecApikey: string;
    constructor(settings: ITyntecWhatsAppAdapterSettings);
    continueConversation(reference: Partial<ConversationReference>, logic: (revocableContext: TurnContext) => Promise<void>): Promise<void>;
    deleteActivity(context: TurnContext, reference: Partial<ConversationReference>): Promise<void>;
    processActivity(req: WebRequest, res: WebResponse, logic: (context: TurnContext) => Promise<any>): Promise<void>;
    sendActivities(context: TurnContext, activities: Partial<Activity>[]): Promise<ResourceResponse[]>;
    updateActivity(context: TurnContext, activity: Partial<Activity>): Promise<ResourceResponse | void>;
    protected composeTyntecWhatsAppMessageRequest(activity: Partial<Activity>): ITyntecWhatsAppMessageRequest;
    protected parseTyntecWhatsAppMessageEvent(req: {
        body: ITyntecMoMessage;
        headers: any;
        params: any;
        query: any;
    }): Promise<Partial<Activity>>;
    protected parseTyntecWebhookRequest(req: {
        body: ITyntecAPIEvent;
        headers: any;
        params: any;
        query: any;
    }): Promise<Partial<Activity>>;
    protected parseTyntecWebhookWhatsAppMoMessage(message: ITyntecMoMessage): Promise<Partial<Activity>>;
    protected parseTyntecWebhookMoMessagePostback(message: ITyntecMoMessagePostback): Promise<Partial<Activity>>;
    protected parseTyntecWebhookAPIEvent(event: ITyntecAPIEvent): Partial<Activity>;
}
