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