bottender
Version:
A framework for building conversational user interfaces.
65 lines • 3.72 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { JsonObject } from 'type-fest';
import { SlackOAuthClient, SlackTypes } from 'messaging-api-slack';
import Context from '../context/Context';
import Session from '../session/Session';
import { RequestContext } from '../types';
import SlackEvent from './SlackEvent';
export declare type SlackContextOptions = {
client: SlackOAuthClient;
event: SlackEvent;
session?: Session | null;
initialState?: JsonObject | null;
requestContext?: RequestContext;
emitter?: EventEmitter | null;
};
export default class SlackContext extends Context<SlackOAuthClient, SlackEvent> {
chat: {
postMessage: (options: Omit<SlackTypes.PostMessageOptions, 'channel'>) => Promise<any>;
postEphemeral: (options: Omit<Omit<SlackTypes.PostEphemeralOptions, 'channel'>, 'user'>) => Promise<any>;
update: (options: SlackTypes.UpdateMessageOptions) => Promise<any>;
delete: (options: Omit<SlackTypes.DeleteMessageOptions, 'channel'>) => Promise<any>;
meMessage: (options: Omit<SlackTypes.MeMessageOptions, 'channel'>) => Promise<any>;
getPermalink: (options: Omit<SlackTypes.GetPermalinkOptions, 'channel'>) => Promise<any>;
scheduleMessage: (options: Omit<SlackTypes.ScheduleMessageOptions, 'channel'>) => Promise<any>;
deleteScheduledMessage: (options: Omit<SlackTypes.DeleteScheduledMessageOptions, 'channel'>) => Promise<any>;
scheduledMessages: {
list: (options: SlackTypes.GetScheduledMessagesOptions) => Promise<any>;
};
};
views: {
open: (options: SlackTypes.OpenViewOptions) => Promise<any>;
publish: (options: SlackTypes.PublishViewOptions) => Promise<any>;
push: (options: SlackTypes.PushViewOptions) => Promise<any>;
update: (options: SlackTypes.UpdateViewOptions) => Promise<any>;
};
constructor({ client, event, session, initialState, requestContext, emitter, }: SlackContextOptions);
get platform(): 'slack';
_getChannelIdFromSession(callerMethodName?: string): string | null;
postMessage(message: {
text?: string;
attachments?: SlackTypes.Attachment[] | string;
blocks?: SlackTypes.MessageBlock[] | string;
} | string, options?: {}): Promise<any>;
_postMessage(options: Omit<SlackTypes.PostMessageOptions, 'channel'>): Promise<any>;
postEphemeral(message: {
text?: string;
attachments?: SlackTypes.Attachment[] | string;
blocks?: SlackTypes.MessageBlock[] | string;
} | string, options?: {}): Promise<any>;
_postEphemeral(options: Omit<Omit<SlackTypes.PostEphemeralOptions, 'channel'>, 'user'>): Promise<any>;
sendText(text: string): Promise<any>;
_updateMessage(options: SlackTypes.UpdateMessageOptions): Promise<any>;
_deleteMessage(options: Omit<SlackTypes.DeleteMessageOptions, 'channel'>): Promise<any>;
_meMessage(options: Omit<SlackTypes.MeMessageOptions, 'channel'>): Promise<any>;
_getPermalink(options: Omit<SlackTypes.GetPermalinkOptions, 'channel'>): Promise<any>;
_scheduleMessage(options: Omit<SlackTypes.ScheduleMessageOptions, 'channel'>): Promise<any>;
_deleteScheduledMessage(options: Omit<SlackTypes.DeleteScheduledMessageOptions, 'channel'>): Promise<any>;
_getScheduledMessages(options: SlackTypes.GetScheduledMessagesOptions): Promise<any>;
_openView(options: SlackTypes.OpenViewOptions): Promise<any>;
_publishView(options: SlackTypes.PublishViewOptions): Promise<any>;
_updateView(options: SlackTypes.UpdateViewOptions): Promise<any>;
_pushView(options: SlackTypes.PushViewOptions): Promise<any>;
}
//# sourceMappingURL=SlackContext.d.ts.map