import { ControllerClass } from './decorators.types'; import { MiddlewareFunction } from './middleware.types'; import { IChatJoinRequest, IContact, IDice, ILocation, IMessage, IMessageEntity, IPoll, IUpdate, IVenue } from './update.types'; import { Answer, Keyboard, Media, MessageCreator } from '../classes'; import { IChat, IUser } from './chat.types'; import { MarkCreator } from '../classes/Marks/MarkCreator'; export interface IHandler { controller: ControllerClass; middlewares: MiddlewareFunction[]; methodKey: string; scope?: string; } export declare type ArgsTypes = [ IUpdate, // update IMessage | undefined, // message string | undefined, Answer, // answer IMessageEntity[] | undefined, string[], any, // params IUser | undefined, // sender number | undefined, ILocation, IContact, IVenue, IPoll, IDice, IChat, IChatJoinRequest ]; export declare type ContentTypes = Media | string | undefined | null; export declare type EditContentTypes = Media | MarkCreator | Keyboard | string; export declare type HandlerMethod = ((...args: ArgsTypes) => MessageCreator | ContentTypes) & { prototype: { name: 'AsyncFunction' | 'Function'; }; };