UNPKG

solver-sdk

Version:

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

130 lines 5.18 kB
import { HttpClient } from '../utils/http-client.js'; import type { CreditsStatus } from '../types/credits.js'; /** * Профиль пользователя */ export interface UserProfile { /** ID пользователя */ id: string; /** Email пользователя */ email?: string; /** Имя пользователя */ firstName?: string; /** Фамилия пользователя */ lastName?: string; /** Тарифный план */ plan: string; /** Количество использованных credits в текущем месяце */ creditsUsed?: number; /** Лимит credits на месяц */ creditsLimit?: number; /** Оставшиеся credits */ remaining?: number; /** Дата сброса счетчика */ resetAt?: Date | null; /** Является ли пользователь администратором */ isAdmin?: boolean; } /** * API для работы с профилем пользователя * * Предоставляет методы для получения информации о текущем пользователе. * * @example * ```javascript * // Получение профиля пользователя * const profile = await sdk.user.getProfile(); * * console.log(`Email: ${profile.email}`); * console.log(`План: ${profile.plan}`); * console.log(`Использовано credits: ${profile.creditsUsed} / ${profile.creditsLimit}`); * console.log(`Осталось: ${profile.remaining} credits`); * ``` */ export declare class UserApi { /** HTTP клиент для выполнения запросов */ private readonly httpClient; /** * Создает новый экземпляр API для работы с пользователем * @param {HttpClient} httpClient HTTP клиент */ constructor(httpClient: HttpClient); /** * Получает профиль текущего пользователя * * @returns {Promise<UserProfile>} Профиль пользователя * @throws {Error} При ошибке запроса к API или если пользователь не авторизован * * @example * ```javascript * try { * const profile = await sdk.user.getProfile(); * * console.log('Профиль пользователя:'); * console.log(` ID: ${profile.id}`); * console.log(` Email: ${profile.email}`); * console.log(` План: ${profile.plan}`); * console.log(` Credits использовано: ${profile.creditsUsed} / ${profile.creditsLimit}`); * * if (profile.remaining !== undefined) { * console.log(` Осталось токенов: ${profile.remaining}`); * } * * if (profile.isAdmin) { * console.log(' 👑 Администратор'); * } * * } catch (error) { * console.error('Ошибка получения профиля:', error); * } * ``` */ getProfile(): Promise<UserProfile>; /** * Проверяет доступность API профиля * * @returns {Promise<boolean>} True, если API доступен и пользователь авторизован * * @example * ```javascript * const isAvailable = await sdk.user.checkAvailability(); * if (!isAvailable) { * console.log('Пользователь не авторизован или API недоступен'); * } * ``` */ checkAvailability(): Promise<boolean>; /** * Получает детальный статус лимитов пользователя (WorkCoins) * * @returns {Promise<CreditsStatus>} Статус credits с балансом и рекомендациями * @throws {Error} При ошибке запроса к API или если пользователь не авторизован * * @example * ```javascript * try { * const creditsStatus = await sdk.user.getLimitStatus(); * * console.log(`Статус: ${creditsStatus.status}`); * console.log(`Сообщение: ${creditsStatus.message}`); * console.log(`Можно делать запросы: ${creditsStatus.canMakeRequest}`); * * // Баланс * console.log(`Credits: ${creditsStatus.balance.creditsRemaining} / ${creditsStatus.balance.creditsLimit}`); * console.log(`Использовано: ${creditsStatus.balance.percentUsed}%`); * * // Рекомендации * if (creditsStatus.action) { * console.log(`Действие: ${creditsStatus.action.type}`); * console.log(`Рекомендация: ${creditsStatus.action.suggestion}`); * console.log(`URL: ${creditsStatus.action.url}`); * } * * } catch (error) { * console.error('Ошибка получения статуса credits:', error); * } * ``` */ getLimitStatus(): Promise<CreditsStatus>; } //# sourceMappingURL=user-api.d.ts.map