import { Request } from './request/Request';
import { IVkApi, IVkDocSave, IVkParams, IVkParamsUsersGet, IVkPhotosSave, IVKSendMessage, IVkUploadFile, IVkUploadServer, IVkUsersGet, TVkDocType, TVkPeerId } from './interfaces';
export declare class VkRequest {
    protected readonly VK_API_VERSION = "5.103";
    protected readonly VK_API_ENDPOINT = "https://api.vk.com/method/";
    protected _vkApiVersion: string;
    protected _request: Request;
    protected _error: string | null;
    token: string | null;
    isAttachContent: boolean;
    constructor();
    initToken(token: string): void;
    call<T extends IVkApi>(method: string): Promise<T | null>;
    upload(url: string, file: string): Promise<IVkUploadFile | null>;
    messagesSend(peerId: TVkPeerId, message: string, params?: IVkParams | null): Promise<IVKSendMessage | null>;
    usersGet(userId: TVkPeerId | string[], params?: IVkParamsUsersGet | null): Promise<IVkUsersGet | null>;
    photosGetMessagesUploadServer(peerId: TVkPeerId): Promise<IVkUploadServer | null>;
    photosSaveMessagesPhoto(photo: string, server: string, hash: string): Promise<IVkPhotosSave | null>;
    docsGetMessagesUploadServer(peerId: TVkPeerId, type: TVkDocType): Promise<IVkUploadServer | null>;
    docsSave(file: string, title: string, tags?: string | null): Promise<IVkDocSave | null>;
    protected _log(error?: string): void;
}
