UNPKG

solver-sdk

Version:

SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system

145 lines 5.65 kB
import { HttpClient } from '../utils/http-client.js'; import { UpdateCheckOptions, UpdateResponse, UpdateStatsEvent, LatestVersionInfo } from '../types/updates.js'; /** * API для работы с системой обновлений WorkAI * * Предоставляет методы для проверки обновлений, получения changelog'ов * и отправки статистики использования обновлений. * * @example * ```javascript * // Проверка обновлений * const updateInfo = await sdk.updates.checkForUpdates({ * currentVersion: '1.0.0', * channel: 'stable', * platform: 'win32-x64', * locale: 'ru' * }); * * if (updateInfo.hasUpdate) { * console.log(`Доступно обновление: ${updateInfo.version}`); * * // Получение описания изменений * const changelog = await sdk.updates.getChangelog('1.1.0', 'ru'); * console.log(changelog); * * // Отправка статистики * await sdk.updates.sendStats({ * event: 'update_started', * currentVersion: '1.0.0', * targetVersion: updateInfo.version * }); * } * ``` */ export declare class UpdatesApi { /** HTTP клиент для выполнения запросов */ private readonly httpClient; /** * Создает новый экземпляр API для работы с обновлениями * @param {HttpClient} httpClient HTTP клиент */ constructor(httpClient: HttpClient); /** * Проверяет наличие обновлений для текущей версии клиента * * @param {UpdateCheckOptions} options Параметры проверки обновления * @returns {Promise<UpdateResponse>} Информация об обновлении * @throws {Error} При ошибке запроса к API * * @example * ```javascript * const updateInfo = await sdk.updates.checkForUpdates({ * currentVersion: '1.0.0', * channel: 'stable', * platform: 'win32-x64', * locale: 'ru' * }); * * if (updateInfo.hasUpdate) { * console.log(`Новая версия: ${updateInfo.version}`); * console.log(`Размер: ${updateInfo.size} байт`); * console.log(`URL: ${updateInfo.downloadUrl}`); * } * ``` */ checkForUpdates(options: UpdateCheckOptions): Promise<UpdateResponse>; /** * Получает описание изменений (changelog) для указанной версии * * @param {string} version Версия для получения changelog * @param {string} locale Локаль для получения переводов * @returns {Promise<string>} Описание изменений в формате Markdown * @throws {Error} При ошибке запроса к API * * @example * ```javascript * const changelog = await sdk.updates.getChangelog('1.1.0', 'ru'); * console.log(changelog); // Markdown текст с изменениями * ``` */ getChangelog(version: string, locale: string): Promise<string>; /** * Отправляет статистику событий обновления * * @param {UpdateStatsEvent} event Событие для отправки статистики * @returns {Promise<void>} Promise, который разрешается при успешной отправке * @throws {Error} При ошибке отправки статистики * * @example * ```javascript * // Начало обновления * await sdk.updates.sendStats({ * event: 'update_started', * currentVersion: '1.0.0', * targetVersion: '1.1.0' * }); * * // Завершение обновления * await sdk.updates.sendStats({ * event: 'update_completed', * currentVersion: '1.0.0', * targetVersion: '1.1.0' * }); * * // Ошибка обновления * await sdk.updates.sendStats({ * event: 'update_failed', * currentVersion: '1.0.0', * targetVersion: '1.1.0', * error: 'Ошибка загрузки файла' * }); * ``` */ sendStats(event: UpdateStatsEvent): Promise<void>; /** * Получает информацию о последней доступной версии * * @param {string} channel Канал обновлений (stable, beta, insider) * @returns {Promise<LatestVersionInfo>} Информация о последней версии * @throws {Error} При ошибке запроса к API * * @example * ```javascript * const latestVersion = await sdk.updates.getLatestVersion('stable'); * console.log(`Последняя версия: ${latestVersion.version}`); * console.log(`Платформы: ${Object.keys(latestVersion.platforms)}`); * ``` */ getLatestVersion(channel?: string): Promise<LatestVersionInfo>; /** * Проверяет доступность API обновлений * * @returns {Promise<boolean>} True, если API доступен * * @example * ```javascript * const isAvailable = await sdk.updates.checkAvailability(); * if (!isAvailable) { * console.log('API обновлений недоступен'); * } * ``` */ checkAvailability(): Promise<boolean>; } //# sourceMappingURL=updates-api.d.ts.map