/// 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 { _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(options: O): { accessToken?: string; } & O; _getSenderActionMethodOptions(options: O): { accessToken?: string; personaId?: string; } & O; _getSendMethodOptions(options: O): { accessToken?: string; personaId?: string; messagingType: MessengerTypes.MessagingType; } & O; usePersona(personaId: string): void; useAccessToken(accessToken: string): void; typing(milliseconds: number): Promise; sendText(text: string, options?: MessengerTypes.SendOption): Promise; getUserProfile(options?: { fields?: MessengerTypes.UserProfileField[]; }): Promise; getUserPersistentMenu(): Promise; setUserPersistentMenu(attrs: MessengerTypes.PersistentMenu, options?: { composerInputDisabled?: boolean; }): Promise; deleteUserPersistentMenu(): Promise; sendSenderAction(senderAction: MessengerTypes.SenderAction, options?: MessengerTypes.SendOption): Promise; typingOn(options?: MessengerTypes.SendOption): Promise; typingOff(options?: MessengerTypes.SendOption): Promise; markSeen(): Promise; 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; 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; sendAttachment(attachment: MessengerTypes.Attachment, options?: MessengerTypes.SendOption): Promise; sendImage(image: string | MessengerTypes.FileData | MessengerTypes.MediaAttachmentPayload, options?: MessengerTypes.SendOption): Promise; sendAudio(audio: string | MessengerTypes.FileData | MessengerTypes.MediaAttachmentPayload, options?: MessengerTypes.SendOption): Promise; sendVideo(video: string | MessengerTypes.FileData | MessengerTypes.MediaAttachmentPayload, options?: MessengerTypes.SendOption): Promise; sendFile(file: string | MessengerTypes.FileData | MessengerTypes.MediaAttachmentPayload, options?: MessengerTypes.SendOption): Promise; sendTemplate(payload: MessengerTypes.TemplateAttachmentPayload, options?: MessengerTypes.SendOption): Promise; sendGenericTemplate(elements: MessengerTypes.TemplateElement[], options: { imageAspectRatio?: 'horizontal' | 'square'; } & MessengerTypes.SendOption): Promise; sendButtonTemplate(text: string, buttons: MessengerTypes.TemplateButton[], options?: MessengerTypes.SendOption): Promise; sendMediaTemplate(elements: MessengerTypes.MediaElement[], options?: MessengerTypes.SendOption): Promise; sendReceiptTemplate(attrs: MessengerTypes.ReceiptAttributes, options?: MessengerTypes.SendOption): Promise; sendAirlineBoardingPassTemplate(attrs: MessengerTypes.AirlineBoardingPassAttributes, options?: MessengerTypes.SendOption): Promise; sendAirlineCheckinTemplate(attrs: MessengerTypes.AirlineCheckinAttributes, options?: MessengerTypes.SendOption): Promise; sendAirlineItineraryTemplate(attrs: MessengerTypes.AirlineItineraryAttributes, options?: MessengerTypes.SendOption): Promise; sendAirlineUpdateTemplate(attrs: MessengerTypes.AirlineUpdateAttributes, options?: MessengerTypes.SendOption): Promise; sendOneTimeNotifReqTemplate(attrs: MessengerTypes.OneTimeNotifReqAttributes, options?: MessengerTypes.SendOption): Promise; } export default MessengerContext; //# sourceMappingURL=MessengerContext.d.ts.map