import { Maybe } from './typings/utils'; import type { IResource, IGetDiskMetadataRes, IRemoveParams, ILink, ICopyParams, IGetItemMetadataParams, IGetItemsListRes, IGetItemsListParams, IGetPublicItemsListRes, IGetPublicItemsListParams, IGetLastUploadedItemsListParams, IGetLastUploadedItemsListRes, IMoveParams, IPublishParams, IUnpublishParams, IGetUploadUrlParams, IGetUploadUrlRes, IUploadParams, IUploadByUploadUrlParams, IUploadByExternalUrlParams, IGetDownloadUrlParams, IGetTrashParams, TGetTrashRes, IClearTrashParams, IRestoreTrashParams, IUpdateItemMetadataParams, IIsItemExistParams } from './typings/yandex'; import type { HttpError } from './errors/http'; export declare class YaDisk { private _http; private _token; /** * @param token - Yandex oauth token * {@link https://oauth.yandex.ru/} */ constructor(token: string); get token(): string; set token(token: string); /** * Получить метаинформацию о диске пользователя * {@link https://yandex.ru/dev/disk/api/reference/capacity.html} */ getDiskMetadata(): Promise; /** * Получить список файлов упорядоченный по имени * {@link https://yandex.ru/dev/disk/api/reference/all-files.html} */ getItemsList(params: IGetItemsListParams): Promise; /** * Получить метаинформацию о файле или каталоге * {@link https://yandex.ru/dev/disk/api/reference/meta.html} * @returns null - если ресурс не найден, либо ресурс. * @example * ```ts * await disk.getItemMetadata({ * path: 'file.txt' * }); * ``` */ getItemMetadata(params: IGetItemMetadataParams): Promise>; /** * Получить список опубликованных ресурсов * {@link https://yandex.ru/dev/disk/api/reference/recent-public.html} */ getPublicItemsList(params: IGetPublicItemsListParams): Promise; /** * Получить список файлов упорядоченный по дате загрузки * {@link https://yandex.ru/dev/disk/api/reference/recent-upload.html} */ getLastUploadedItemsList(params: IGetLastUploadedItemsListParams): Promise; /** * Проверить существует ли ресурс(файл либо папка) по указанному пути * @example * ```ts * await disk.isItemExist({ path: 'dir-or-file' }); * // true если файл или папка по указанному пути существует * ``` * @example * ```ts * await disk.isItemExist({ path: 'myfile.txt', type: 'file' }); * // true если ресурс существует и является файлом * ``` * @example * ```ts * await disk.isItemExist({ path: 'mydir', type: 'dir' }); * // true если ресурс существует и является папкой * ``` */ isItemExist(params: IIsItemExistParams): Promise; /** * Хелпер вызывающий {@link YaDisk.isItemExist} с аргументом "type" равному "file" * @example * ```ts * await disk.isFileExist('myfile.txt'); * ``` */ isFileExist(path: string): Promise; /** * Хелпер вызывающий {@link YaDisk.isItemExist} с аргументом "type" равному "dir" * @example * ```ts * await disk.isDirExist('mydir'); * ``` */ isDirExist(path: string): Promise; /** * Создать папку * {@link https://yandex.ru/dev/disk/api/reference/create-folder.html} * @example * ```ts * await disk.createDir('dir-path'); * ``` */ createDir(path: string): Promise; /** * Удалить файл или папку * {@link https://yandex.ru/dev/disk/api/reference/delete.html} * @example * ```ts * await disk.remove({ * path: "file-to-remove.txt", * permanently: true * }) * ``` */ remove(params: IRemoveParams): Promise; /** * Создать копию файла или папки * {@link https://yandex.ru/dev/disk/api/reference/copy.html} * @example * ```ts * await disk.copy({ * from: "from.txt", * to: "to.txt", * overwrite: true * }) * ``` */ copy(params: ICopyParams): Promise; /** * Переместить файл или папку * {@link https://yandex.ru/dev/disk/api/reference/move.html} * @example * ```ts *await disk.move({ * from: 'path-from.txt', * to: 'path-to.txt', * overwrite: true * }) * ``` */ move(params: IMoveParams): Promise; /** * Опубликовать ресурс * {@link https://yandex.ru/dev/disk/api/reference/publish.html#publish-q} * @example * ```ts * await disk.publish({ path: 'path-to-publish.txt' }); * ``` */ publish(params: IPublishParams): Promise; /** * Отменить публикацию ресурса * {@link https://yandex.ru/dev/disk/api/reference/publish.html#unpublish-q} * @example * ```ts * await disk.unpublish({ path: 'path-to-unpublish.txt' }); * ``` */ unpublish(params: IUnpublishParams): Promise; /** * Получить ссылку для загрузки файла. Ссылка действительна 30 мин * Можно использовать только 1 раз, даже если загрузка не была успешной * {@link https://yandex.ru/dev/disk/api/reference/upload.html#url-request} * @example * ```ts * await disk.getUploadUrl({ * path: "ya-disk-file.txt", * overwrite: true, * }) * ``` */ getUploadUrl(params: IGetUploadUrlParams): Promise; /** * загрузить файл по полученной из getUploadUrl ссылке * {@link https://yandex.ru/dev/disk/api/reference/upload.html#response-upload} * @example * ```ts * await disk.uploadByUploadUrl({ * file: "./file.txt", * url: "url-from-get-upload-url-method" * }) * ``` * @example * ```ts * await disk.uploadByUploadUrl({ * file: fs.createReadStream("./file.txt"), * url: "url-from-get-upload-url-method" * }) * ``` * @example * ```ts * await disk.uploadByUploadUrl({ * file: Buffer.from('hello world', 'utf-8'), * url: "url-from-get-upload-url-method" * }) * ``` */ uploadByUploadUrl(params: IUploadByUploadUrlParams): Promise; /** * хелпер комбинирующий {@link YaDisk.getUploadUrl} и {@link YaDisk.uploadByUploadUrl}. * Получает ссылку на загрузку и загружает по ней файл * @example * ```ts * await disk.upload({ * path: "ya-disk-file.txt", * file: "./file.txt", * overwrite: true, * }) * ``` * @example * ```ts * await disk.upload({ * path: "ya-disk-file.txt", * file: fs.createReadStream("./file.txt"), * }) * ``` * @example * ```ts * await disk.upload({ * path: "ya-disk-file.txt", * file: Buffer.from('hello world', 'utf-8'), * }) * ``` */ upload(params: IUploadParams): Promise; /** * Загрузить файл в Диск по внешнему URL * {@link https://yandex.ru/dev/disk/api/reference/upload-ext.html} * @example * ```ts * await disk.uploadByExternalUrl({ * path: "path-to-yandex-disk-file.png", * url: "https://www.example.com/cat.png", * }) * ``` */ uploadByExternalUrl(params: IUploadByExternalUrlParams): Promise; /** * Получить ссылку на скачивание файла * {@link https://yandex.ru/dev/disk/api/reference/content.html} */ getDownloadUrl(params: IGetDownloadUrlParams): Promise; /** * Обновить пользовательские данные ресурса * {@link https://yandex.ru/dev/disk/api/reference/meta-add.html} * @example * ```ts * await disk.updateItemMetadata({ * path: 'file.txt', * body: { * custom_properties: {foo: "1", bar: "2"} * } * }); * ``` */ updateItemMetadata(params: IUpdateItemMetadataParams): Promise; /** * Получить содержимое Корзины */ getTrash(params?: IGetTrashParams): Promise; /** * Очистить корзину * {@link https://yandex.ru/dev/disk/api/reference/trash-delete.html} * @example * ```ts * // полная очистка * await disk.clearTrash(); * ``` * @example * ```ts * // удаление конкретного ресурса * await disk.clearTrash({ path: 'path-to-remove.txt' }); * ``` */ clearTrash(params?: IClearTrashParams): Promise; /** * Восстановить ресурс из Корзины * {@link https://yandex.ru/dev/disk/api/reference/trash-restore.html} * @example * ```ts * await disk.restoreTrash({ * path: 'path-to-restore.txt', * overwrite: true * }); * ``` */ restoreTrash(params: IRestoreTrashParams): Promise; /** * проверить была ли выброшенная ошибка инстансом {@link HttpError} * @example * ```ts * try { * await disk.getMetadata(); * } catch(e) { * if(disk.isHttpError(e)) { * // тип сужен до HttpError * if(e.code === 404) { * // ... * } * } * } * ``` * @param e - ошибка */ isHttpError(e: any): e is HttpError; }