import type { DecimalString, InstrumentName, Money, UInt64String } from './common.js'; import type { CalculationMode, CommissionType, DealType, ExecutionMode, FillingMode, HmrPeriodEventType, InstrumentOrderType, OrderReason, OrderState, OrderType, Side, TradeMode } from './enums.js'; export interface AccountState { balance: DecimalString; equity: DecimalString; used_margin: DecimalString; } export interface TransactionAccountState extends AccountState { leverage: string; } export interface AccountSettings { currency: string; leverage: string; trade_mode: TradeMode; account_status: import('./enums.js').AccountTradingStatus; execution_mode: ExecutionMode; margin_call_level?: DecimalString; stopout_level?: DecimalString; } export interface Order { order_id: UInt64String; order_type: OrderType; state: OrderState; create_time: string; position_id?: UInt64String; direction?: Side; instrument?: InstrumentName; price?: DecimalString; stop_loss_price?: DecimalString | null; take_profit_price?: DecimalString | null; update_time?: string; volume?: DecimalString; reason?: OrderReason; } export interface Position { position_id: UInt64String; direction: Side; instrument: InstrumentName; volume: DecimalString; state: 'open' | 'closed'; create_time: string; initial_volume?: DecimalString; open_price?: DecimalString; margin_rate?: DecimalString; commission?: DecimalString; swap?: DecimalString; rollover_time?: string; } export interface Deal { deal_id: UInt64String; type: DealType; create_time: string; order_id?: UInt64String; position_id?: UInt64String; direction?: Side; instrument?: InstrumentName; volume?: DecimalString; price?: DecimalString; profit?: { amount: DecimalString; currency: string; }; commission?: DecimalString; } export interface CandleSide { open: number; high: number; low: number; close: number; } export interface Candle { time: string; open: number; high: number; low: number; close: number; volume: number; } export interface CandleBidAsk { time: string; bid?: CandleSide; ask?: CandleSide; volume: number; } export interface WSTick { instrument: InstrumentName; bid: number; ask: number; timestamp: string; } export interface SwapMultiplier { day: string; multiplier: number; } export interface CommissionSettings { commission_type?: CommissionType; commission_value?: Money; } export interface InstrumentSession { trade_mode?: TradeMode; week_start_time?: string; week_end_time?: string; } export interface InstrumentCondition { instrument: InstrumentName; description?: string; international_name?: string | null; category?: string; base_currency?: string; quote_currency?: string; margin_currency?: string; point_digits?: number; calc_mode?: CalculationMode; exec_mode?: ExecutionMode; margin_percent?: DecimalString | null; contract_size?: DecimalString | null; volume_min?: DecimalString | null; volume_max?: DecimalString | null; volume_step?: DecimalString | null; swap_long?: DecimalString | null; swap_short?: DecimalString | null; swap_multipliers?: SwapMultiplier[]; trade_mode?: TradeMode; order_types?: InstrumentOrderType[]; filling_modes?: FillingMode[]; trade_sessions?: InstrumentSession[]; commission_settings?: CommissionSettings; } export interface HmrPeriod { period_id: UInt64String; event_type: HmrPeriodEventType; instruments: InstrumentName[]; leverage: string; start_time: string; end_time: string; } export interface GlobalRestRateLimit { requests_per_minute: number; } export interface OperationRequestLimits { max_limit?: number; max_history_age?: string; max_time_range?: string; max_candles?: number; } export interface RestMethodLimits { rate: GlobalRestRateLimit; request?: OperationRequestLimits; } export interface RestLimits { global_account_rate: GlobalRestRateLimit; methods: Record; } export interface WebSocketTokenBucketLimit { burst: number; rate_per_minute: number; } export interface WebSocketStrikeLimits { disconnect_threshold: number; window_minutes: number; } export interface WebSocketGlobalAccountLimits { total_connections: number; auth_failures: WebSocketTokenBucketLimit; } export interface WebSocketEndpointLimits { api_operation_id: string; http_method: string; path: string; connection_rate: WebSocketTokenBucketLimit; inbound_message_rate: WebSocketTokenBucketLimit; subscription_operation_rate: Record; strikes?: WebSocketStrikeLimits; } export interface WebSocketLimits { global_account_limits: WebSocketGlobalAccountLimits; endpoints: Record; } export interface TransactionPayload { orders?: Order[]; positions?: Position[]; deals?: Deal[]; account_state?: TransactionAccountState; } //# sourceMappingURL=models.d.ts.map