///
import { EventEmitter } from 'events';
import * as stream from 'stream';
import { VKError, VKExecuteResponse, VKResponse } from './interfaces/APIResponses';
import UploadedPhoto from './interfaces/UploadedPhoto';
import Message from './interfaces/Message';
import UserEvent from './interfaces/UserEvent';
import MessageSendParams from './interfaces/MessageSendParams';
import Keyboard, { KeyboardColor } from './Keyboard';
export interface Options {
token: string;
api?: {
lang?: string;
v?: string;
};
group_id: number;
controllers?: string[];
}
export declare type replyFunc = (text?: string, params?: MessageSendParams) => Promise;
export declare class Bot extends EventEmitter {
options: Options;
_events: Object;
_userEvents: UserEvent[];
_stop: boolean;
constructor(options: Options);
api(method: string, params?: any): Promise;
send(text: string, peer: number, params?: MessageSendParams): Promise;
processUpdate(res: any): boolean;
start(poll_delay?: number): this;
stop(): this;
get(pattern: UserEvent['pattern'], listener: UserEvent['listener']): this;
getPayload(jsonString: string, listener: (msg?: Message, reply?: replyFunc) => void): void;
uploadPhoto(photo: string | stream.Stream): Promise;
private _update;
}
export { Message, UploadedPhoto, VKError, VKExecuteResponse, VKResponse, UserEvent, MessageSendParams, Keyboard, KeyboardColor };
export * from './decorators';