import { LineClient } from 'messaging-api-line'; import { MessengerClient } from 'messaging-api-messenger'; import { SlackOAuthClient } from 'messaging-api-slack'; import { TelegramClient } from 'messaging-api-telegram'; import { ViberClient } from 'messaging-api-viber'; import ConsoleEvent, { ConsoleRawEvent } from './console/ConsoleEvent'; import Context from './context/Context'; import LineEvent from './line/LineEvent'; import MessengerEvent from './messenger/MessengerEvent'; import SessionStore from './session/SessionStore'; import SlackEvent from './slack/SlackEvent'; import TelegramEvent from './telegram/TelegramEvent'; import TwilioClient from './whatsapp/TwilioClient'; import ViberEvent from './viber/ViberEvent'; import WhatsappEvent from './whatsapp/WhatsappEvent'; import { ConsoleClient } from './console/ConsoleClient'; import { LineRequestBody } from './line/LineConnector'; import { MessengerRequestBody } from './messenger/MessengerConnector'; import { SlackRequestBody } from './slack/SlackConnector'; import { TelegramRequestBody } from './telegram/TelegramConnector'; import { ViberRequestBody } from './viber/ViberConnector'; import { WhatsappRequestBody } from './whatsapp/WhatsappConnector'; export declare type Client = ConsoleClient | MessengerClient | LineClient | SlackOAuthClient | TelegramClient | ViberClient | TwilioClient; export declare type Event = ConsoleEvent | MessengerEvent | LineEvent | SlackEvent | TelegramEvent | ViberEvent | WhatsappEvent; export declare type Body = ConsoleRawEvent | MessengerRequestBody | LineRequestBody | SlackRequestBody | TelegramRequestBody | ViberRequestBody | WhatsappRequestBody; export declare type AnyContext = Context; export declare type Action = {}, RAP extends Record = {}> = (context: C, props: Props & P) => void | Action | Promise | void>; export declare type Props = { next?: Action; error?: Error; }; export declare type Plugin = (context: C) => void; export declare enum Channel { Messenger = "messenger", Line = "line", Slack = "slack", Telegram = "telegram", Viber = "viber", Whatsapp = "whatsapp" } export declare enum SessionDriver { Memory = "memory", File = "file", Redis = "redis", Mongo = "mongo" } export declare type SessionConfig = { driver: string; expiresIn?: number; stores: { memory?: { maxSize?: number; }; file?: { dirname?: string; }; redis?: { port?: number; host?: string; password?: string; db?: number; }; mongo?: { url?: string; collectionName?: string; }; } | { [P in Exclude]: SessionStore; }; }; export declare type BottenderConfig = { plugins?: Plugin[]; session?: SessionConfig; initialState?: Record; channels?: { [Channel.Messenger]: { enabled: boolean; path: string; accessToken: string; verifyToken: string; appId: string; appSecret: string; }; [Channel.Line]: { enabled: boolean; path: string; accessToken: string; channelSecret: string; }; [Channel.Telegram]: { enabled: boolean; path: string; accessToken: string; }; [Channel.Slack]: { enabled: boolean; path: string; accessToken: string; verificationToken?: string; signingSecret?: string; }; [Channel.Viber]: { enabled: boolean; path: string; accessToken: string; sender: { name: string; }; }; [Channel.Whatsapp]: { enabled: boolean; path: string; accountSid: string; authToken: string; }; }; }; export declare type RequestContext = { method: string; path: string; query: Record; headers: Record; }; //# sourceMappingURL=types.d.ts.map