UNPKG

solver-sdk

Version:

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

142 lines 5.56 kB
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