import { BotScreen } from './interfaces/bot-screen'; import TelegramBot, { Message } from 'node-telegram-bot-api'; import { BotEvent } from './interfaces/bot-event'; import { ScreensDataReader } from './utils/screens-data-reader'; import { LogLevels } from './utils/log-levels'; import { StatsHandler } from './stats/stats-handler'; export declare class FlowBot { readonly bot: TelegramBot; adminIds: number[]; screens: BotScreen[]; events: BotEvent[]; customEvents: Map {}>; imagesFolder: string; dataFolder: string; screenDataReader: ScreensDataReader; state: Map; currentScreen: Map; stats: StatsHandler; constructor(token: string, flow: { screens: BotScreen[]; events?: BotEvent[]; }, options?: Partial<{ adminIds: string | number[]; dataFolder: string; logLevel: LogLevels; customEvents: { name: string; handler: (() => {}); }[]; }>); start(): void; restart(screens: BotScreen[], events: BotEvent[]): void; registerCommands(screens: BotScreen[]): void; processCommand(ctx: Message, screen: BotScreen): Promise; registerEvents(events: BotEvent[]): void; processEvent(ctx: TelegramBot.Message, event: BotEvent): Promise; sendMessage(screen: BotScreen, ctx: TelegramBot.Message, command: string): Promise; getScreenDataReader(chatId: number): ScreensDataReader; sendText(screen: BotScreen, ctx: TelegramBot.Message, command: string): Promise; sendPhoto(screen: BotScreen, ctx: TelegramBot.Message, command: string): Promise; escapedText(text: string): string; isAdmin(chatId: number): boolean; }