UNPKG

@barfinex/types

Version:

Core TypeScript type definitions and shared interfaces for the Barfinex ecosystem. Provides strongly-typed contracts for modules, services, and plugins.

158 lines 8.28 kB
import { AccountEvent } from './account.interface'; import { Candle } from './candle.interface'; import { Order } from './order.interface'; import { OrderBook } from './orderbook.interface'; import { AdvisorAutonomousCycleCompletedPayload, AdvisorAutonomousCycleStartedPayload, AdvisorConvictionCalibrationPayload, AdvisorConvictionPayload, AdvisorDecisionPayload, AdvisorDecisionMadePayload, ExecutionIntentPayload, AdvisorFactorExposureSnapshotPayload, AdvisorNetExposureSnapshotPayload, AdvisorOutcomeAttributionSnapshotPayload, AdvisorPerformanceFeedbackProcessedPayload, AdvisorPortfolioAllocationPayload, AdvisorPortfolioCorrelationSnapshotPayload, AdvisorPortfolioRiskModeSnapshotPayload, AdvisorRegimeCapitalRotationSnapshotPayload, AdvisorSignalPayload, BaseEvent, DetectorSignalPayload, InspectorRegimePayload, InspectorRiskPayload, InspectorTradeOutcomePayload, SubscriptionType, SubscriptionValue } from './subscription.interface'; import { Instrument, InstrumentPrice } from './instrument.interface'; import { Trade } from './trade.interface'; export interface ProviderTradeEvent { instrument: Instrument; price: number; volume: number; side: Trade['side']; time: number; } export type ProviderOrderBookEvent = OrderBook; export type ProviderCandleEvent = Candle; export type ProviderAccountEvent = AccountEvent; export type ProviderOrderCreateEvent = Order; export type ProviderOrderCloseEvent = Order; export type ProviderInstrumentsEvent = Array<Instrument>; export type ProviderInstrumentPricesEvent = InstrumentPrice; export interface InspectorVolatilitySpikePayload { instrument: Instrument; volatility: number; threshold?: number; reason?: string; } export interface InspectorLiquidityDroppedPayload { instrument: Instrument; liquidityScore: number; threshold?: number; reason?: string; } export interface InspectorDataGapDetectedPayload { instrument: Instrument; gapSizeMs: number; expectedIntervalMs?: number; reason?: string; } export interface InspectorDataOutlierDetectedPayload { instrument: Instrument; metric: string; value: number; zScore?: number; reason?: string; } export interface InspectorDataMaturityUpdatePayload { instrument: Instrument; mature: boolean; intentType: SubscriptionType; } export interface InspectorRiskMarginUpdatePayload { instrument: Instrument; currentMargin: number; requiredMargin: number; reason?: string; } export interface AdvisorDecisionRequestPayload { requestId: string; symbol: string; timestamp: number; [key: string]: unknown; } export interface AdvisorConfidenceLowPayload { decisionId?: string; symbol: string; confidence: number; threshold?: number; reason?: string; } export interface AdvisorModelSwitchedPayload { fromModel: string; toModel: string; reason?: string; switchedAt: number; } export interface AdvisorHallucinationDetectedPayload { decisionId?: string; symbol?: string; reason: string; confidence?: number; detectedAt: number; } export interface EventPayloadMap { [SubscriptionType.PROVIDER_MARKETDATA_TRADE]: ProviderTradeEvent; [SubscriptionType.PROVIDER_MARKETDATA_ORDERBOOK]: ProviderOrderBookEvent; [SubscriptionType.PROVIDER_MARKETDATA_CANDLE]: ProviderCandleEvent; [SubscriptionType.PROVIDER_ACCOUNT_EVENT]: ProviderAccountEvent; [SubscriptionType.PROVIDER_ORDER_CREATE]: ProviderOrderCreateEvent; [SubscriptionType.PROVIDER_ORDER_CLOSE]: ProviderOrderCloseEvent; [SubscriptionType.PROVIDER_INSTRUMENTS]: ProviderInstrumentsEvent; [SubscriptionType.PROVIDER_INSTRUMENT_PRICES]: ProviderInstrumentPricesEvent; [SubscriptionType.INSPECTOR_TREND_DETECTED]: InspectorRegimePayload; [SubscriptionType.INSPECTOR_RANGE_DETECTED]: InspectorRegimePayload; [SubscriptionType.INSPECTOR_VOLATILITY_SPIKE]: InspectorVolatilitySpikePayload; [SubscriptionType.INSPECTOR_LIQUIDITY_DROPPED]: InspectorLiquidityDroppedPayload; [SubscriptionType.INSPECTOR_DATA_GAP_DETECTED]: InspectorDataGapDetectedPayload; [SubscriptionType.INSPECTOR_DATA_OUTLIER_DETECTED]: InspectorDataOutlierDetectedPayload; [SubscriptionType.INSPECTOR_DATA_MATURITY_UPDATE]: InspectorDataMaturityUpdatePayload; [SubscriptionType.INSPECTOR_RISK_LIMIT_BREACH]: InspectorRiskPayload; [SubscriptionType.INSPECTOR_RISK_MARGIN_UPDATE]: InspectorRiskMarginUpdatePayload; [SubscriptionType.INSPECTOR_RISK_KILL_SWITCH]: InspectorRiskPayload; [SubscriptionType.INSPECTOR_TRADE_OUTCOME]: InspectorTradeOutcomePayload; [SubscriptionType.DETECTOR_SIGNAL_GENERATED]: DetectorSignalPayload; [SubscriptionType.DETECTOR_SIGNAL_UPDATED]: DetectorSignalPayload; [SubscriptionType.DETECTOR_SIGNAL_INVALIDATED]: DetectorSignalPayload; [SubscriptionType.DETECTOR_POSITION_OPEN_REQUEST]: DetectorSignalPayload; [SubscriptionType.DETECTOR_POSITION_CLOSE_REQUEST]: DetectorSignalPayload; [SubscriptionType.DETECTOR_POSITION_REDUCE_REQUEST]: DetectorSignalPayload; [SubscriptionType.DETECTOR_POSITION_FLIP_REQUEST]: DetectorSignalPayload; [SubscriptionType.ADVISOR_DECISION_REQUEST]: AdvisorDecisionRequestPayload; [SubscriptionType.ADVISOR_DECISION_RESPONSE]: AdvisorDecisionPayload; [SubscriptionType.ADVISOR_DECISION_MADE]: AdvisorDecisionMadePayload; [SubscriptionType.ADVISOR_SIGNAL_GENERATED]: AdvisorSignalPayload; [SubscriptionType.ADVISOR_EXECUTION_INTENT_OPEN]: ExecutionIntentPayload; [SubscriptionType.ADVISOR_EXECUTION_INTENT_CLOSE]: ExecutionIntentPayload; [SubscriptionType.ADVISOR_EXECUTION_INTENT_REDUCE]: ExecutionIntentPayload; [SubscriptionType.ADVISOR_EXECUTION_INTENT_FLIP]: ExecutionIntentPayload; [SubscriptionType.ADVISOR_AUTONOMOUS_CYCLE_STARTED]: AdvisorAutonomousCycleStartedPayload; [SubscriptionType.ADVISOR_AUTONOMOUS_CYCLE_COMPLETED]: AdvisorAutonomousCycleCompletedPayload; [SubscriptionType.ADVISOR_DECISION_CONTEXT_SNAPSHOT]: AdvisorDecisionPayload; [SubscriptionType.ADVISOR_CONVICTION_SNAPSHOT]: AdvisorConvictionPayload; [SubscriptionType.ADVISOR_CONVICTION_CALIBRATION_SNAPSHOT]: AdvisorConvictionCalibrationPayload; [SubscriptionType.ADVISOR_PORTFOLIO_ALLOCATION_SNAPSHOT]: AdvisorPortfolioAllocationPayload; [SubscriptionType.ADVISOR_PORTFOLIO_CORRELATION_SNAPSHOT]: AdvisorPortfolioCorrelationSnapshotPayload; [SubscriptionType.ADVISOR_REGIME_CAPITAL_ROTATION_SNAPSHOT]: AdvisorRegimeCapitalRotationSnapshotPayload; [SubscriptionType.ADVISOR_NET_EXPOSURE_SNAPSHOT]: AdvisorNetExposureSnapshotPayload; [SubscriptionType.ADVISOR_FACTOR_EXPOSURE_SNAPSHOT]: AdvisorFactorExposureSnapshotPayload; [SubscriptionType.ADVISOR_PORTFOLIO_RISK_MODE_SNAPSHOT]: AdvisorPortfolioRiskModeSnapshotPayload; [SubscriptionType.ADVISOR_PERFORMANCE_FEEDBACK_PROCESSED]: AdvisorPerformanceFeedbackProcessedPayload; [SubscriptionType.ADVISOR_OUTCOME_ATTRIBUTION_SNAPSHOT]: AdvisorOutcomeAttributionSnapshotPayload; [SubscriptionType.ADVISOR_CONFIDENCE_LOW]: AdvisorConfidenceLowPayload; [SubscriptionType.ADVISOR_MODEL_SWITCHED]: AdvisorModelSwitchedPayload; [SubscriptionType.ADVISOR_HALLUCINATION_DETECTED]: AdvisorHallucinationDetectedPayload; } export type EventPayloadByType<TType extends SubscriptionType> = EventPayloadMap[TType]; export type EventValueByType<TType extends SubscriptionType> = EventPayloadByType<TType> | BaseEvent<TType, EventPayloadByType<TType>>; export interface EventMetadata { eventId: string; traceId: string; timestamp: number; version: number; source: string; } export type EventMessageByType<TType extends SubscriptionType> = { metadata: EventMetadata; value: EventValueByType<TType>; options: SubscriptionValue['options']; }; type MissingEventPayloadTypes = Exclude<SubscriptionType, keyof EventPayloadMap>; type ExtraEventPayloadTypes = Exclude<keyof EventPayloadMap, SubscriptionType>; export type AssertEventPayloadMapCoverage = [ MissingEventPayloadTypes, ExtraEventPayloadTypes ] extends [never, never] ? true : never; export declare const ASSERT_EVENT_PAYLOAD_MAP_COVERAGE: AssertEventPayloadMapCoverage; export {}; //# sourceMappingURL=event-payload.interface.d.ts.map