solver-sdk
Version:
SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system
142 lines • 5.56 kB
TypeScript
import { UpdatesApi } from '../api/updates-api.js';
import { UpdateState, UpdateStatus, DownloadProgress, ElectronUpdaterConfig, UpdateResponse } from '../types/updates.js';
/**
* 🔄 Update Manager - Helper для управления обновлениями на стороне клиента
*
* Этот класс НЕ является частью SDK API, а предоставляет удобные helper методы
* для интеграции с electron-updater и управления локальным состоянием обновлений.
*
* @example
* ```typescript
* import { CodeSolverSDK, UpdateManager } from 'solver-sdk';
*
* const sdk = new CodeSolverSDK({ baseURL: 'https://workai.su' });
* const updateManager = new UpdateManager(sdk.updates, {
* autoCheckOnStart: true,
* autoDownload: false,
* showNotifications: true
* });
*
* // Подписка на события
* updateManager.on('update-available', (info) => {
* console.log(`Доступна версия ${info.version}`);
* });
*
* updateManager.on('download-progress', (progress) => {
* console.log(`Загружено: ${progress.percent}%`);
* });
*
* // Проверка обновлений
* await updateManager.checkForUpdates('1.0.0', 'win32-x64');
*
* // Получение текущего состояния
* const state = updateManager.getCurrentState();
* ```
*/
export declare class UpdateManager {
private updatesApi;
private config;
private state;
private listeners;
private autoCheckTimer?;
/**
* Создает новый UpdateManager
*
* @param updatesApi Экземпляр UpdatesApi из SDK
* @param config Конфигурация для автообновлений
*/
constructor(updatesApi: UpdatesApi, config?: ElectronUpdaterConfig);
/**
* 🔍 Проверка наличия обновлений
*
* @param currentVersion Текущая версия приложения
* @param platform Платформа (win32-x64, darwin-x64, linux-x64)
* @param channel Канал обновлений (stable, beta, insider)
* @returns Информация об обновлении или null если обновлений нет
*/
checkForUpdates(currentVersion: string, platform: string, channel?: 'stable' | 'beta' | 'insider'): Promise<UpdateResponse | null>;
/**
* 📊 Получение текущего состояния обновлений
*
* @returns Текущее состояние
*/
getCurrentState(): UpdateState;
/**
* 📊 Получение текущего статуса (для совместимости с клиентом)
*
* @returns Объект с текущим статусом
*/
getCurrentStatus(): {
status: UpdateStatus;
updateInfo: UpdateResponse | null;
progress?: DownloadProgress | null;
};
/**
* 🔄 Обновление прогресса загрузки (вызывается из electron-updater)
*
* @param progress Информация о прогрессе
*/
updateDownloadProgress(progress: DownloadProgress): void;
/**
* ✅ Уведомление о завершении загрузки (вызывается из electron-updater)
*/
markDownloadCompleted(): void;
/**
* ❌ Уведомление об ошибке загрузки (вызывается из electron-updater)
*
* @param error Сообщение об ошибке
*/
markDownloadError(error: string): void;
/**
* 📝 Получение changelog для версии
*
* @param version Версия для получения changelog
* @param locale Локаль (по умолчанию 'ru')
* @returns Markdown текст с описанием изменений
*/
getChangelog(version: string, locale?: string): Promise<string>;
/**
* 🔔 Подписка на события
*
* @param event Название события
* @param listener Функция-обработчик
*
* События:
* - checking-for-update: Начата проверка обновлений
* - update-available: Обновление доступно
* - update-not-available: Обновлений нет
* - download-progress: Прогресс загрузки
* - update-downloaded: Загрузка завершена
* - error: Произошла ошибка
* - auto-download-requested: Запрошена автозагрузка
*/
on(event: string, listener: Function): void;
/**
* 🔕 Отписка от события
*
* @param event Название события
* @param listener Функция-обработчик
*/
off(event: string, listener: Function): void;
/**
* 🔄 Запуск автоматической проверки обновлений
*/
startAutoCheck(): void;
/**
* 🛑 Остановка автоматической проверки обновлений
*/
stopAutoCheck(): void;
/**
* 🧹 Очистка ресурсов
*/
dispose(): void;
/**
* Обновление внутреннего состояния
*/
private updateState;
/**
* Генерация события
*/
private emit;
}
//# sourceMappingURL=update-manager.d.ts.map