import { DyFM_AnyError } from '@futdevpro/fsm-dynamo'; import { DyFM_Msg_Provider_Type } from '@futdevpro/fsm-dynamo/messaging'; import { DyNTS_Bot_ChannelWrapper } from '../_models/bot-channel-wrapper.interface'; import { DyNTS_Bot_LastMessageDate } from '../_models/bot-last-message-date.interface'; import { DyNTS_Bot_LastMentionDate } from '../_models/bot-last-mention-date.interface'; import { DyNTS_SingletonService } from '../../../_services/base/singleton.service'; import { DyNTS_Bot_MessageWrapper } from '../_models/bot-message-wrapper.interface'; import { DyNTS_Bot_UserWrapper } from '../_models/bot-user-wrapper.interface'; export interface DyNTS_Bot_MessagingProvider_Config { reportChannelName: string; } export interface Slack_MessagingProviderConfig extends DyNTS_Bot_MessagingProvider_Config { token: string; workspace: string; } export interface Teams_MessagingProviderConfig extends DyNTS_Bot_MessagingProvider_Config { appId: string; appPassword: string; tenantId: string; } export interface Dynamo_MessagingProviderConfig extends DyNTS_Bot_MessagingProvider_Config { defaultConversationId?: string; botUserId?: string; botDisplayName?: string; } export declare abstract class DyNTS_Bot_MessagingProvider_ServiceBase extends DyNTS_SingletonService { abstract readonly name: string; /** used as id as well */ abstract readonly type: DyFM_Msg_Provider_Type | string; abstract get botId(): string; abstract get botDisplayName(): string; abstract readonly config: T_MessagingProviderConfig; protected readonly channelCache: Map; protected readonly roleCache: Map; abstract setup(issuer: string): Promise; abstract start(issuer: string): Promise; abstract getChannelByName(name: string): Promise>; abstract getChannelById(id: string): Promise>; abstract sendMessageToChannelByName(channelName: string, message: string, issuer: string): Promise>; abstract getMessagesFromChannelByChannelName(channelName: string, limit?: number): Promise[]>; abstract getLastMessageInChannel(channelName: string): Promise>; abstract clearChannel(channelWrapper: DyNTS_Bot_ChannelWrapper): Promise; abstract sendMessageToChannel(channelWrapper: DyNTS_Bot_ChannelWrapper, content: string, issuer: string): Promise>; abstract replyToMessage(messageWrapper: DyNTS_Bot_MessageWrapper, content: string): Promise>; abstract sendTyping(channelWrapper: DyNTS_Bot_ChannelWrapper): Promise; abstract sendTypingForMessage(messageWrapper: DyNTS_Bot_MessageWrapper): Promise; abstract fetchMessages(channelWrapper: DyNTS_Bot_ChannelWrapper, limit: number): Promise[]>; abstract fetchMessagesById(id: string, limit: number): Promise[]>; abstract fetchMessagesForMessage(messageWrapper: DyNTS_Bot_MessageWrapper, limit: number): Promise[]>; abstract fetchAllMessagesWithPaging(channelWrapper: DyNTS_Bot_ChannelWrapper, maxFetch?: number): Promise[]>; abstract deleteMessage(messageWrapper: DyNTS_Bot_MessageWrapper): Promise; abstract updateMessage(message: T_MessagingPlatformMessage, issuer: string): Promise; abstract getUserByName(username: string): Promise>; abstract getUserMention(userId: string): string; abstract readMembersInChannel(channelName: string): Promise[]>; abstract readMemberNamesInChannel(channelName: string): Promise; abstract getLastMessageSentBy(channelName: string, username: string): Promise>; abstract getLastMentionOf(channelName: string, username: string): Promise>; abstract readLastMessageDatesByMembers(channelName: string, memberNames: string[]): Promise; abstract readLastMessageWithMemberNamePingInIt(channelName: string, users: DyNTS_Bot_UserWrapper[]): Promise; abstract getRoleByName?(roleName: string): any; abstract getRolePingByName?(roleName: string): Promise; abstract getRolePingsByName?(roleNames: string[]): Promise; abstract create_onMessageEventListener(handler: (message: DyNTS_Bot_MessageWrapper, issuer: string) => Promise): Promise; abstract create_onErrorEventListener(handler: (error: DyFM_AnyError) => void): void; abstract sendReport(message: string): Promise>; abstract sendReportIn(message: string): Promise>; abstract wrapMessage(message: T_MessagingPlatformMessage): Promise>; abstract wrapChannel(channel: T_MessagingPlatformChannel): Promise>; abstract wrapUser(user: T_MessagingPlatformUser): Promise>; } //# sourceMappingURL=bot-messaging-provider.service-base.d.ts.map