///
///
import { EventEmitter } from 'events';
import { JsonObject } from 'type-fest';
import { LineClient } from 'sibdigital-messaging-apis/packages/messaging-api-line';
import Context from '../context/Context';
import Session from '../session/Session';
import { RequestContext } from '../types';
import LineEvent from './LineEvent';
import * as LineTypes from './LineTypes';
export declare type LineContextOptions = {
client: LineClient;
event: LineEvent;
session?: Session | null;
initialState?: JsonObject | null;
requestContext?: RequestContext;
customAccessToken?: string;
shouldBatch?: boolean;
sendMethod?: string;
emitter?: EventEmitter | null;
};
declare class LineContext extends Context {
_isReplied: boolean;
_shouldBatch: boolean;
_replyMessages: LineTypes.Message[];
_pushMessages: LineTypes.Message[];
_sendMethod: string;
constructor({ client, event, session, initialState, requestContext, customAccessToken, shouldBatch, sendMethod, emitter, }: LineContextOptions);
get platform(): 'line';
get accessToken(): string;
useAccessToken(accessToken: string): void;
get isReplied(): boolean;
handlerDidEnd(): Promise;
getMessageContent(): Promise | undefined;
leave(): Promise;
getUserProfile(): Promise | null>;
getMemberProfile(userId: string): Promise | null>;
getMembersCount(): Promise;
getMemberIds(start: string): Promise | null>;
getAllMemberIds(): Promise;
getLinkedRichMenu(): Promise;
linkRichMenu(richMenuId: string): Promise;
unlinkRichMenu(): Promise;
issueLinkToken(): Promise;
reply(messages: LineTypes.Message[]): Promise | undefined;
replyText(text: string, options?: LineTypes.MessageOptions & {
emojis?: LineTypes.Emoji[];
}): Promise | undefined;
replyImage(image: {
originalContentUrl: string;
previewImageUrl?: string;
}, options?: LineTypes.MessageOptions): Promise | undefined;
replyVideo(video: {
originalContentUrl: string;
previewImageUrl: string;
}, options?: LineTypes.MessageOptions): Promise | undefined;
replyAudio(audio: {
originalContentUrl: string;
duration: number;
}, options?: LineTypes.MessageOptions): Promise | undefined;
replyLocation(location: LineTypes.Location, options?: LineTypes.MessageOptions): Promise | undefined;
replySticker(sticker: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
replyImagemap(altText: string, imagemap: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
replyFlex(altText: string, flex: LineTypes.FlexContainer, options?: LineTypes.MessageOptions): Promise | undefined;
replyTemplate(altText: string, template: LineTypes.Template, options?: LineTypes.MessageOptions): Promise | undefined;
replyButtonTemplate(altText: string, buttonTemplate: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
replyButtonsTemplate(altText: string, buttonTemplate: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
replyConfirmTemplate(altText: string, confirmTemplate: Omit, options: LineTypes.MessageOptions): Promise | undefined;
replyCarouselTemplate(altText: string, columns: LineTypes.ColumnObject[], options: {
imageAspectRatio?: 'rectangle' | 'square';
imageSize?: 'cover' | 'contain';
} & LineTypes.MessageOptions): Promise | undefined;
replyImageCarouselTemplate(altText: string, columns: LineTypes.ImageCarouselColumnObject[], options: LineTypes.MessageOptions): Promise | undefined;
push(messages: LineTypes.Message[]): Promise | undefined;
pushText(text: string, options?: LineTypes.MessageOptions & {
emojis?: LineTypes.Emoji[];
}): Promise | undefined;
pushImage(image: {
originalContentUrl: string;
previewImageUrl?: string;
}, options?: LineTypes.MessageOptions): Promise | undefined;
pushVideo(video: {
originalContentUrl: string;
previewImageUrl: string;
}, options?: LineTypes.MessageOptions): Promise | undefined;
pushAudio(audio: {
originalContentUrl: string;
duration: number;
}, options?: LineTypes.MessageOptions): Promise | undefined;
pushLocation(location: LineTypes.Location, options?: LineTypes.MessageOptions): Promise | undefined;
pushSticker(sticker: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
pushImagemap(altText: string, imagemap: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
pushFlex(altText: string, flex: LineTypes.FlexContainer, options?: LineTypes.MessageOptions): Promise | undefined;
pushTemplate(altText: string, template: LineTypes.Template, options?: LineTypes.MessageOptions): Promise | undefined;
pushButtonTemplate(altText: string, buttonTemplate: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
pushButtonsTemplate(altText: string, buttonTemplate: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
pushConfirmTemplate(altText: string, confirmTemplate: Omit, options: LineTypes.MessageOptions): Promise | undefined;
pushCarouselTemplate(altText: string, columns: LineTypes.ColumnObject[], options: {
imageAspectRatio?: 'rectangle' | 'square';
imageSize?: 'cover' | 'contain';
} & LineTypes.MessageOptions): Promise | undefined;
pushImageCarouselTemplate(altText: string, columns: LineTypes.ImageCarouselColumnObject[], options: LineTypes.MessageOptions): Promise | undefined;
send(messages: LineTypes.Message[]): Promise | undefined;
sendText(text: string, options?: LineTypes.MessageOptions & {
emojis?: LineTypes.Emoji[];
}): Promise | undefined;
sendImage(image: {
originalContentUrl: string;
previewImageUrl?: string;
}, options?: LineTypes.MessageOptions): Promise | undefined;
sendVideo(video: {
originalContentUrl: string;
previewImageUrl: string;
}, options?: LineTypes.MessageOptions): Promise | undefined;
sendAudio(audio: {
originalContentUrl: string;
duration: number;
}, options?: LineTypes.MessageOptions): Promise | undefined;
sendLocation(location: LineTypes.Location, options?: LineTypes.MessageOptions): Promise | undefined;
sendSticker(sticker: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
sendImagemap(altText: string, imagemap: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
sendFlex(altText: string, flex: LineTypes.FlexContainer, options?: LineTypes.MessageOptions): Promise | undefined;
sendTemplate(altText: string, template: LineTypes.Template, options?: LineTypes.MessageOptions): Promise | undefined;
sendButtonTemplate(altText: string, buttonTemplate: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
sendButtonsTemplate(altText: string, buttonTemplate: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
sendConfirmTemplate(altText: string, confirmTemplate: Omit, options?: LineTypes.MessageOptions): Promise | undefined;
sendCarouselTemplate(altText: string, columns: LineTypes.ColumnObject[], options?: {
imageAspectRatio?: 'rectangle' | 'square';
imageSize?: 'cover' | 'contain';
} & LineTypes.MessageOptions): Promise | undefined;
sendImageCarouselTemplate(altText: string, columns: LineTypes.ImageCarouselColumnObject[], options: LineTypes.MessageOptions): Promise | undefined;
}
export default LineContext;
//# sourceMappingURL=LineContext.d.ts.map