import { ModuleMetadata, Type } from '@nestjs/common/interfaces'; import { Middleware, PollingOptions, BotConfig } from 'grammy'; export interface TelegrafModuleOptions { token: string; config?: BotConfig; pollingOptions?: PollingOptions | false; botName?: string; include?: Function[]; middlewares?: ReadonlyArray>; } export interface TelegrafOptionsFactory { createTelegrafOptions(): | Promise | TelegrafModuleOptions; } export interface TelegrafModuleAsyncOptions extends Pick { botName?: string; useExisting?: Type; useClass?: Type; useFactory?: ( ...args: any[] ) => Promise | TelegrafModuleOptions; inject?: any[]; }