UNPKG

trysoftwacloudapi

Version:
97 lines (96 loc) 3.68 kB
/// <reference types="node" /> import express, { Application } from 'express'; import { Server } from 'http'; import { Contact, InteractiveHeader, TemplateComponent } from './messages.types'; import { SendMessageResult } from './sendRequestHelper'; import { FreeFormObject } from './utils/misc'; import { PubSubEvent } from './utils/pubSub'; export interface Message { wab_pid: string; wab_number: string; from: string; name: string | undefined; id: string; timestamp: string; type: PubSubEvent; data: FreeFormObject; } export interface Bot { startExpressServer: (options?: { app?: express.Application; useMiddleware?: (app: express.Application) => void; port?: number; webhookPath?: string; webhookVerifyToken?: string; }) => Promise<{ server?: Server; app: Application; }>; on: (event: PubSubEvent, cb: (message: Message) => void) => string; unsubscribe: (token: string) => string | boolean; markRead: (id: string) => Promise<SendMessageResult>; getMediaDownload: (id: string, save_path: string) => Promise<object>; sendText: (to: string, text: string, options?: { preview_url?: boolean; context?: object; }) => Promise<SendMessageResult>; sendMessage: (to: string, text: string, options?: { preview_url?: boolean; context?: object; }) => Promise<SendMessageResult>; sendImage: (to: string, urlOrObjectId: string, options?: { caption?: string; context?: object; }) => Promise<SendMessageResult>; sendDocument: (to: string, urlOrObjectId: string, options?: { caption?: string; filename?: string; context?: object; }) => Promise<SendMessageResult>; sendAudio: (to: string, urlOrObjectId: string) => Promise<SendMessageResult>; sendVideo: (to: string, urlOrObjectId: string, options?: { caption?: string; context?: object; }) => Promise<SendMessageResult>; sendSticker: (to: string, urlOrObjectId: string) => Promise<SendMessageResult>; sendLocation: (to: string, latitude: number, longitude: number, options?: { name?: string; address?: string; context?: object; }) => Promise<SendMessageResult>; sendTemplate: (to: string, name: string, languageCode: string, components?: TemplateComponent[]) => Promise<SendMessageResult>; sendContacts: (to: string, contacts: Contact[]) => Promise<SendMessageResult>; sendReplyButtons: (to: string, bodyText: string, buttons: { [id: string]: string | number; }, options?: { footerText?: string; header?: InteractiveHeader; context?: object; }) => Promise<SendMessageResult>; sendList: (to: string, buttonName: string, bodyText: string, sections: { [sectionTitle: string]: { id: string | number; title: string | number; description?: string; }[]; }, options?: { footerText?: string; header?: InteractiveHeader; context?: object; }) => Promise<SendMessageResult>; sendFlow: (to: string, bodyText: string, buttonName: string, options?: { footerText?: string; header?: InteractiveHeader; flow_token: string; flow_id: string; screen: string; data?: object; context?: object; }) => Promise<SendMessageResult>; sendLocationRequest: (to: string, bodyText: string, options?: { context?: object; }) => Promise<SendMessageResult>; } export type ICreateBot = (fromPhoneNumberId: string, accessToken: string, options?: { version?: string; }) => Bot;