import type { ConditionalOrderConditionType, ConditionalOrderState, ConditionalOrderTriggerSource, OrderSide, OrderType, PositionSide, TimeInForce } from "../../trading"; export type ConditionalOrderEventReason = "created" | "cancelled" | "triggered" | "failed" | "oco_cancelled"; export interface ConditionalOrderEventData { conditionalOrderId: string; tradingPairId: string; marginAccountId: string; positionId?: string; linkedGroupId?: string; conditionType: ConditionalOrderConditionType; triggerSource: ConditionalOrderTriggerSource; triggerPrice: string; side: OrderSide; positionSide: PositionSide; orderType: OrderType; limitPrice?: string; quantity?: string; slippageToleranceBps?: number; reduceOnly: boolean; timeInForce?: Extract; state: ConditionalOrderState; triggeredOrderId?: string; triggeredAt?: string; cancelledAt?: string; expiresAt?: string; failureReason?: string; reason: ConditionalOrderEventReason; updatedAt: string; } export interface ConditionalOrderEvent { eventType: "conditional_order_update"; userId: string; data: ConditionalOrderEventData; }