bottender
Version:
A framework for building conversational user interfaces.
114 lines • 6.87 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { FacebookBatchQueue } from 'facebook-batch';
import { JsonObject } from 'type-fest';
import { MessengerClient } from 'messaging-api-messenger';
import Context from '../context/Context';
import Session from '../session/Session';
import { RequestContext } from '../types';
import MessengerEvent from './MessengerEvent';
import * as MessengerTypes from './MessengerTypes';
export declare type MessengerContextOptions = {
appId?: string;
client: MessengerClient;
event: MessengerEvent;
session?: Session;
initialState?: JsonObject;
requestContext?: RequestContext;
customAccessToken?: string;
batchQueue?: FacebookBatchQueue | null;
emitter?: EventEmitter;
};
declare class MessengerContext extends Context<MessengerClient, MessengerEvent> {
_appId: string | null;
_customAccessToken: string | null;
_personaId: string | null;
_batchQueue: FacebookBatchQueue | null;
constructor({ appId, client, event, session, initialState, requestContext, customAccessToken, batchQueue, emitter, }: MessengerContextOptions);
get platform(): 'messenger';
get accessToken(): string | null;
_getMethodOptions<O extends object>(options: O): {
accessToken?: string;
} & O;
_getSenderActionMethodOptions<O extends object>(options: O): {
accessToken?: string;
personaId?: string;
} & O;
_getSendMethodOptions<O extends {
tag?: MessengerTypes.MessageTag;
}>(options: O): {
accessToken?: string;
personaId?: string;
messagingType: MessengerTypes.MessagingType;
} & O;
usePersona(personaId: string): void;
useAccessToken(accessToken: string): void;
typing(milliseconds: number): Promise<void>;
sendText(text: string, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
getUserProfile(options?: {
fields?: MessengerTypes.UserProfileField[];
}): Promise<MessengerTypes.User | null>;
getUserPersistentMenu(): Promise<MessengerTypes.PersistentMenu | null>;
setUserPersistentMenu(attrs: MessengerTypes.PersistentMenu, options?: {
composerInputDisabled?: boolean;
}): Promise<MessengerTypes.MutationSuccessResponse | undefined>;
deleteUserPersistentMenu(): Promise<MessengerTypes.MutationSuccessResponse | undefined>;
sendSenderAction(senderAction: MessengerTypes.SenderAction, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendSenderActionResponse | undefined>;
typingOn(options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendSenderActionResponse | undefined>;
typingOff(options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendSenderActionResponse | undefined>;
markSeen(): Promise<MessengerTypes.SendSenderActionResponse | undefined>;
passThreadControl(targetAppId: number, metadata?: string): Promise<{
success: true;
} | undefined>;
passThreadControlToPageInbox(metadata?: string): Promise<{
success: true;
} | undefined>;
takeThreadControl(metadata?: string): Promise<{
success: true;
} | undefined>;
requestThreadControl(metadata?: string): Promise<{
success: true;
} | undefined>;
getThreadOwner(): Promise<{
appId: string;
} | undefined>;
isThreadOwner(): Promise<boolean>;
associateLabel(labelId: number): Promise<{
success: true;
} | undefined>;
dissociateLabel(labelId: number): Promise<{
success: true;
} | undefined>;
getAssociatedLabels(): Promise<{
data: {
name: string;
id: string;
}[];
paging: {
cursors: {
before: string;
after: string;
};
};
} | undefined>;
sendMessage(message: MessengerTypes.Message, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendAttachment(attachment: MessengerTypes.Attachment, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendImage(image: string | MessengerTypes.FileData | MessengerTypes.MediaAttachmentPayload, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendAudio(audio: string | MessengerTypes.FileData | MessengerTypes.MediaAttachmentPayload, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendVideo(video: string | MessengerTypes.FileData | MessengerTypes.MediaAttachmentPayload, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendFile(file: string | MessengerTypes.FileData | MessengerTypes.MediaAttachmentPayload, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendTemplate(payload: MessengerTypes.TemplateAttachmentPayload, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendGenericTemplate(elements: MessengerTypes.TemplateElement[], options: {
imageAspectRatio?: 'horizontal' | 'square';
} & MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendButtonTemplate(text: string, buttons: MessengerTypes.TemplateButton[], options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendMediaTemplate(elements: MessengerTypes.MediaElement[], options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendReceiptTemplate(attrs: MessengerTypes.ReceiptAttributes, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendAirlineBoardingPassTemplate(attrs: MessengerTypes.AirlineBoardingPassAttributes, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendAirlineCheckinTemplate(attrs: MessengerTypes.AirlineCheckinAttributes, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendAirlineItineraryTemplate(attrs: MessengerTypes.AirlineItineraryAttributes, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendAirlineUpdateTemplate(attrs: MessengerTypes.AirlineUpdateAttributes, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
sendOneTimeNotifReqTemplate(attrs: MessengerTypes.OneTimeNotifReqAttributes, options?: MessengerTypes.SendOption): Promise<MessengerTypes.SendMessageSuccessResponse | undefined>;
}
export default MessengerContext;
//# sourceMappingURL=MessengerContext.d.ts.map