///
import { EventEmitter } from 'events';
import { JsonObject } from 'type-fest';
import { SlackOAuthClient, SlackTypes } from 'sibdigital-messaging-apis/packages/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 {
chat: {
postMessage: (options: Omit) => Promise;
postEphemeral: (options: Omit, 'user'>) => Promise;
update: (options: SlackTypes.UpdateMessageOptions) => Promise;
delete: (options: Omit) => Promise;
meMessage: (options: Omit) => Promise;
getPermalink: (options: Omit) => Promise;
scheduleMessage: (options: Omit) => Promise;
deleteScheduledMessage: (options: Omit) => Promise;
scheduledMessages: {
list: (options: SlackTypes.GetScheduledMessagesOptions) => Promise;
};
};
views: {
open: (options: SlackTypes.OpenViewOptions) => Promise;
publish: (options: SlackTypes.PublishViewOptions) => Promise;
push: (options: SlackTypes.PushViewOptions) => Promise;
update: (options: SlackTypes.UpdateViewOptions) => Promise;
};
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;
_postMessage(options: Omit): Promise;
postEphemeral(message: {
text?: string;
attachments?: SlackTypes.Attachment[] | string;
blocks?: SlackTypes.MessageBlock[] | string;
} | string, options?: {}): Promise;
_postEphemeral(options: Omit, 'user'>): Promise;
sendText(text: string): Promise;
_updateMessage(options: SlackTypes.UpdateMessageOptions): Promise;
_deleteMessage(options: Omit): Promise;
_meMessage(options: Omit): Promise;
_getPermalink(options: Omit): Promise;
_scheduleMessage(options: Omit): Promise;
_deleteScheduledMessage(options: Omit): Promise;
_getScheduledMessages(options: SlackTypes.GetScheduledMessagesOptions): Promise;
_openView(options: SlackTypes.OpenViewOptions): Promise;
_publishView(options: SlackTypes.PublishViewOptions): Promise;
_updateView(options: SlackTypes.UpdateViewOptions): Promise;
_pushView(options: SlackTypes.PushViewOptions): Promise;
}
//# sourceMappingURL=SlackContext.d.ts.map