import { IMaxSendMessage, IMaxParams, IMaxAppApi } from './interfaces';
import { IMaxUploadFile, TMaxUploadFile } from './interfaces/IMaxAppApi';
import { AppContext } from '../../../index';
/**
 * Класс для взаимодействия с API Max
 * Предоставляет методы для отправки сообщений, загрузки файлов
 * @see (https://dev.max.ru/docs-api) Смотри тут
 */
export declare class MaxRequest {
    #private;
    /**
     * Токен доступа к Max API
     */
    token: string | null;
    /**
     * Флаг для прямой передачи содержимого файла
     * По умолчанию: false
     */
    isAttachContent: boolean;
    /**
     * Создает экземпляр класса для работы с API ВКонтакте
     * Устанавливает токен из конфигурации приложения, если он доступен
     */
    constructor(appContext: AppContext);
    /**
     * Инициализирует токен доступа к MAX API
     * @param token Токен доступа к MAX API
     */
    initToken(token: string): void;
    /**
     * Выполняет вызов метода MAX API
     * @param method Название метода MAX API
     * @returns Результат выполнения метода или null при ошибке
     */
    call<T extends IMaxAppApi>(method: string): Promise<T | null>;
    /**
     * Загружает файл на сервера Max
     * @param file Путь к файлу или его содержимое
     * @param type Тип загружаемого файла
     * @returns Информация о загруженном файле или null при ошибке
     */
    upload(file: string, type: TMaxUploadFile): Promise<IMaxUploadFile | null>;
    /**
     * Отправляет сообщение пользователю или в чат
     * @param peerId Идентификатор получателя:
     * @param message Текст сообщения
     * @param params Дополнительные параметры:
     * @returns Информация об отправленном сообщении или null при ошибке
     */
    messagesSend(peerId: number | string, message: string, params?: IMaxParams | null): Promise<IMaxSendMessage | null>;
    /**
     * Регистрирует событие для получения уведомлений о новых сообщениях в MAX
     * @param url
     */
    subscriptions(url: string): Promise<unknown>;
}
