export interface WAFlowBody { encrypted_aes_key: string; encrypted_flow_data: string; initial_vector: string; } declare type BasicData = string | boolean | number | Array | Array | Array; export declare type WAData = Record; export interface WAFlowRequest { version: string; action: "INIT" | "BACK" | "data_exchange" | "ping"; screen: string; data: WAData; flow_token: string; } declare type ErrorResponse = { error_messages: Record; }; declare type TerminalResponse = { extension_message_response: { params: WAData; }; }; export interface WAFlowResponse { version: string; screen?: string; data: ErrorResponse | TerminalResponse | WAData; } export declare class WhatsAppFlowEndpoint { private NAME; private executor; private PRIVATE_KEY; private PASSPHRASE; private VERBOSE; constructor(NAME: string, executor: (request: WAFlowRequest) => Promise, PRIVATE_KEY: string, PASSPHRASE: string, VERBOSE?: boolean); static validateAsync(validators: Record Promise>, data: WAData): Promise>; private decrypt; private encrypt; execute(encryptedBody: WAFlowBody): Promise; } export {};