import { YandexRequest } from './YandexRequest';
import { IYandexCheckOutPlace, IYandexRequestDownloadImage } from './interfaces';
import { AppContext } from '../../../index';
/**
 * Класс отвечающий за загрузку изображений в навык Алисы.
 * @see (https://yandex.ru/dev/dialogs/alice/doc/resource-upload-docpage/) Смотри тут
 *
 * @class YandexImageRequest
 */
export declare class YandexImageRequest extends YandexRequest {
    #private;
    /**
     * Идентификатор навыка, необходимый для корректного сохранения изображения
     * @see YandexRequest Базовый класс для работы с API Яндекса
     */
    skillId: string | null;
    /**
     * Создает экземпляр класса для работы с изображениями в навыке Алисы
     * @param oauth Авторизационный токен для загрузки изображений
     * @param skillId Идентификатор навыка
     * @param appContext Контекст приложения
     * @see https://tech.yandex.ru/dialogs/alice/doc/resource-upload-docpage/ Документация по загрузке ресурсов
     * @see https://oauth.yandex.ru/verification_code Получение OAuth-токена
     */
    constructor(oauth: string | null | undefined, skillId: string | null | undefined, appContext: AppContext);
    /**
     * Проверка занятого места в хранилище изображений
     * @returns {Promise<IYandexCheckOutPlace | null>} Информация о занятом месте:
     * - total: общий доступный объем хранилища
     * - used: использованный объем хранилища
     */
    checkOutPlace(): Promise<IYandexCheckOutPlace | null>;
    /**
     * Загрузка изображения из интернета по URL
     * @param imageUrl URL-адрес изображения в интернете
     * @returns {Promise<IYandexRequestDownloadImage | null>} Информация о загруженном изображении:
     * - id: уникальный идентификатор изображения
     * - origUrl: оригинальный URL изображения
     * - size: размер изображения в байтах
     * - createdAt: дата и время загрузки
     */
    downloadImageUrl(imageUrl: string): Promise<IYandexRequestDownloadImage | null>;
    /**
     * Загрузка изображения из локального файла
     * @param imageDir Путь к файлу изображения на сервере
     * @returns {Promise<IYandexRequestDownloadImage | null>} Информация о загруженном изображении:
     * - id: уникальный идентификатор изображения
     * - origUrl: оригинальный URL изображения
     * - size: размер изображения в байтах
     * - createdAt: дата и время загрузки
     */
    downloadImageFile(imageDir: string): Promise<IYandexRequestDownloadImage | null>;
    /**
     * Получение списка всех загруженных изображений
     * @returns {Promise<IYandexRequestDownloadImage[] | null>} Массив с информацией о загруженных изображениях
     */
    getLoadedImages(): Promise<IYandexRequestDownloadImage[] | null>;
    /**
     * Удаление конкретного изображения по его идентификатору
     * @param imageId Идентификатор изображения для удаления
     * @returns {Promise<string | null>} 'ok' при успешном удалении, null при ошибке
     */
    deleteImage(imageId: string): Promise<string | null>;
    /**
     * Удаление всех загруженных изображений
     * @returns {Promise<boolean>} true если все изображения успешно удалены, false при ошибке
     * @remarks Если при удалении произойдет ошибка, некоторые изображения могут остаться в хранилище
     */
    deleteImages(): Promise<boolean>;
}
