import { AccountRequest, AccountSnapshot, AsyncJobResponse, BrokerOrder, CachedSignal, CompleteTradingRequest, CompleteTradingResponse, EquityHistoryRequest, FollowSignalsRequest, FollowSignalsResponse, JobStatusResponse, OrderResponse, OrdersRequest, PlaceOrderRequest, Position, RebalanceRequest, RebalanceResponse, SignalsRequest, TrainingJobStartResponse, TrainingJobStatusResponse, TrainingRequest } from '../types/training-hub-api-types'; import { Logger, SkaiBaseClient } from './base-client'; /** * Configuration for SKAI Training Hub Client */ export interface SkaiTrainingHubClientConfig { /** Base URL for Training Hub API (e.g., 'https://api-dev.training-hub.skillfulai.io') */ baseUrl: string; /** User API key for authentication */ userApiKey: string; /** Request timeout in milliseconds (optional, defaults to 5 minutes) */ timeout?: number; } /** * SKAI Training Hub Client for AI-powered trading operations * * Provides access to Training Hub API endpoints: * - Model training * - Signal generation * - Trade execution * - Portfolio management * - Account operations * * Usage: * ```typescript * const trainingHubClient = new SkaiTrainingHubClient(log, { * baseUrl: 'https://api-dev.training-hub.skillfulai.io', * userApiKey: 'sk-...' * }) * * // Start training * const training = await trainingHubClient.startTraining({ * broker_name: 'alpaca', * credentials: { api_key: '...', api_secret: '...', paper: true } * }) * ``` */ export declare class SkaiTrainingHubClient extends SkaiBaseClient { private readonly userApiKey; constructor(log: Logger, config: SkaiTrainingHubClientConfig); /** * Start model training job * POST /api/trading/train */ startTraining(request: TrainingRequest): Promise; /** * Get training job status * GET /api/trading/train/{job_id}/status */ getTrainingStatus(jobId: string): Promise; /** * Generate trading signals (async job) * POST /api/trading/signals * * Note: This endpoint starts an async job. Use getSignalsStatus() to poll for results. */ generateSignals(request: SignalsRequest): Promise; /** * Get signals job status * GET /api/trading/signals/{job_id}/status */ getSignalsStatus(jobId: string): Promise; /** * Get cached trade signals * GET /api/trading/trade/signals */ getCachedSignals(): Promise; /** * Remove cached trade signal * DELETE /api/trading/trade/signals/{signal_id} */ removeCachedSignal(signalId: string): Promise; /** * Complete trading workflow - Generate signals and execute trades (synchronous) * POST /api/trading/trade */ completeTradingWorkflow(request: CompleteTradingRequest): Promise; /** * Complete trading workflow - Generate signals and execute trades (async) * POST /api/trading/trade/async */ completeTradingWorkflowAsync(request: CompleteTradingRequest): Promise; /** * Get trade job status * GET /api/trading/trade/{job_id}/status */ getTradeStatus(jobId: string): Promise; /** * Place individual order * POST /api/trading/trade/order */ placeOrder(request: PlaceOrderRequest): Promise; /** * Get account info and positions * POST /api/trading/account/snapshot */ getAccountSnapshot(request: AccountRequest): Promise; /** * Get positions only * POST /api/trading/account/positions */ getPositions(request: AccountRequest): Promise; /** * Get orders * POST /api/trading/account/orders */ getOrders(request: OrdersRequest): Promise; /** * Get equity history curve * POST /api/trading/account/equity */ getEquityHistory(request: EquityHistoryRequest): Promise; /** * Rebalance portfolio * POST /api/trading/rebalance */ rebalancePortfolio(request: RebalanceRequest): Promise; /** * Follow another user's trading signals * POST /api/trading/follow */ followSignals(request: FollowSignalsRequest): Promise; /** * Create a new Training Hub client instance */ static create(log: Logger, config: SkaiTrainingHubClientConfig): SkaiTrainingHubClient; }