import { DecreaseFeatureUsageRequest, FeatureUsageUpdateResponse, IncreaseFeatureUsageRequest, TierFeatureAllowance, UserTierResponse } from '../types/user-api-types'; import { Logger, SkaiBaseClient } from './base-client'; /** * Configuration for SKAI User Client */ export interface SkaiUserClientConfig { /** Base URL for SKAI API (e.g., 'https://api-dev.agents.skillfulai.io') */ baseUrl: string; /** User API key for tier and usage operations */ userApiKey: string; /** Request timeout in milliseconds (optional, defaults to 5 minutes) */ timeout?: number; } /** * SKAI User Client for managing user tiers and feature usage * * Provides access to SKAI User API endpoints: * - Get user tier information * - Increase/decrease feature usage * - Platform request management * * Usage: * ```typescript * const userClient = new SkaiUserClient(log, { * baseUrl: 'https://api-dev.model-hub.skillfulai.io', * userApiKey: 'sk-...' * }) * * // Get user tier info * const tier = await userClient.getUserTier() * * // Deduct platform requests * const result = await userClient.deductPlatformRequests(1) * ``` */ export declare class SkaiUserClient extends SkaiBaseClient { private readonly userApiKey; constructor(log: Logger, config: SkaiUserClientConfig); /** * Get user tier information including feature allowances * @returns UserTierResponse containing tier info and feature allowances */ getUserTier(): Promise; /** * Increase feature usage (deduct credits) by specified amount * @param request The request payload containing feature and increment * @returns FeatureUsageUpdateResponse with updated allowances */ increaseFeatureUsage(request: IncreaseFeatureUsageRequest): Promise; /** * Decrease feature usage (refund credits) by specified amount * @param request The request payload containing feature and decrement * @returns FeatureUsageUpdateResponse with updated allowances */ decreaseFeatureUsage(request: DecreaseFeatureUsageRequest): Promise; /** * Convenience method to deduct platform requests specifically * @param amount Number of platform requests to deduct * @returns FeatureUsageUpdateResponse with updated allowances */ deductPlatformRequests(amount: number): Promise; /** * Convenience method to refund platform requests specifically * @param amount Number of platform requests to refund * @returns FeatureUsageUpdateResponse with updated allowances */ refundPlatformRequests(amount: number): Promise; /** * Get current platform request allowance information * @returns TierFeatureAllowance with platform request allowance details */ getPlatformRequestAllowance(): Promise; /** * Create a new SKAI User client instance */ static create(log: Logger, config: SkaiUserClientConfig): SkaiUserClient; }