solver-sdk
Version:
SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system
145 lines • 5.65 kB
TypeScript
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