@adaptic/utils 0.0.382 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/index.cjs +10241 -120
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.mjs +10057 -121
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/types/alpaca/client.d.ts +95 -0
  6. package/dist/types/alpaca/client.d.ts.map +1 -0
  7. package/dist/types/alpaca/crypto/data.d.ts +281 -0
  8. package/dist/types/alpaca/crypto/data.d.ts.map +1 -0
  9. package/dist/types/alpaca/crypto/index.d.ts +75 -0
  10. package/dist/types/alpaca/crypto/index.d.ts.map +1 -0
  11. package/dist/types/alpaca/crypto/orders.d.ts +221 -0
  12. package/dist/types/alpaca/crypto/orders.d.ts.map +1 -0
  13. package/dist/types/alpaca/index.d.ts +201 -0
  14. package/dist/types/alpaca/index.d.ts.map +1 -0
  15. package/dist/types/alpaca/market-data/bars.d.ts +142 -0
  16. package/dist/types/alpaca/market-data/bars.d.ts.map +1 -0
  17. package/dist/types/alpaca/market-data/index.d.ts +13 -0
  18. package/dist/types/alpaca/market-data/index.d.ts.map +1 -0
  19. package/dist/types/alpaca/market-data/news.d.ts +87 -0
  20. package/dist/types/alpaca/market-data/news.d.ts.map +1 -0
  21. package/dist/types/alpaca/market-data/quotes.d.ts +85 -0
  22. package/dist/types/alpaca/market-data/quotes.d.ts.map +1 -0
  23. package/dist/types/alpaca/market-data/trades.d.ts +98 -0
  24. package/dist/types/alpaca/market-data/trades.d.ts.map +1 -0
  25. package/dist/types/alpaca/options/contracts.d.ts +279 -0
  26. package/dist/types/alpaca/options/contracts.d.ts.map +1 -0
  27. package/dist/types/alpaca/options/data.d.ts +126 -0
  28. package/dist/types/alpaca/options/data.d.ts.map +1 -0
  29. package/dist/types/alpaca/options/index.d.ts +17 -0
  30. package/dist/types/alpaca/options/index.d.ts.map +1 -0
  31. package/dist/types/alpaca/options/orders.d.ts +366 -0
  32. package/dist/types/alpaca/options/orders.d.ts.map +1 -0
  33. package/dist/types/alpaca/options/strategies.d.ts +224 -0
  34. package/dist/types/alpaca/options/strategies.d.ts.map +1 -0
  35. package/dist/types/alpaca/streams/base-stream.d.ts +143 -0
  36. package/dist/types/alpaca/streams/base-stream.d.ts.map +1 -0
  37. package/dist/types/alpaca/streams/crypto-stream.d.ts +173 -0
  38. package/dist/types/alpaca/streams/crypto-stream.d.ts.map +1 -0
  39. package/dist/types/alpaca/streams/index.d.ts +54 -0
  40. package/dist/types/alpaca/streams/index.d.ts.map +1 -0
  41. package/dist/types/alpaca/streams/option-stream.d.ts +167 -0
  42. package/dist/types/alpaca/streams/option-stream.d.ts.map +1 -0
  43. package/dist/types/alpaca/streams/stock-stream.d.ts +176 -0
  44. package/dist/types/alpaca/streams/stock-stream.d.ts.map +1 -0
  45. package/dist/types/alpaca/streams/stream-manager.d.ts +277 -0
  46. package/dist/types/alpaca/streams/stream-manager.d.ts.map +1 -0
  47. package/dist/types/alpaca/streams/trading-stream.d.ts +186 -0
  48. package/dist/types/alpaca/streams/trading-stream.d.ts.map +1 -0
  49. package/dist/types/alpaca/streams.d.ts +88 -0
  50. package/dist/types/alpaca/streams.d.ts.map +1 -0
  51. package/dist/types/alpaca/test-imports.d.ts +7 -0
  52. package/dist/types/alpaca/test-imports.d.ts.map +1 -0
  53. package/dist/types/alpaca/trading/account.d.ts +198 -0
  54. package/dist/types/alpaca/trading/account.d.ts.map +1 -0
  55. package/dist/types/alpaca/trading/bracket-orders.d.ts +162 -0
  56. package/dist/types/alpaca/trading/bracket-orders.d.ts.map +1 -0
  57. package/dist/types/alpaca/trading/index.d.ts +13 -0
  58. package/dist/types/alpaca/trading/index.d.ts.map +1 -0
  59. package/dist/types/alpaca/trading/oco-orders.d.ts +203 -0
  60. package/dist/types/alpaca/trading/oco-orders.d.ts.map +1 -0
  61. package/dist/types/alpaca/trading/order-utils.d.ts +404 -0
  62. package/dist/types/alpaca/trading/order-utils.d.ts.map +1 -0
  63. package/dist/types/alpaca/trading/orders.d.ts +199 -0
  64. package/dist/types/alpaca/trading/orders.d.ts.map +1 -0
  65. package/dist/types/alpaca/trading/oto-orders.d.ts +282 -0
  66. package/dist/types/alpaca/trading/oto-orders.d.ts.map +1 -0
  67. package/dist/types/alpaca/trading/positions.d.ts +389 -0
  68. package/dist/types/alpaca/trading/positions.d.ts.map +1 -0
  69. package/dist/types/alpaca/trading/smart-orders.d.ts +301 -0
  70. package/dist/types/alpaca/trading/smart-orders.d.ts.map +1 -0
  71. package/dist/types/alpaca/trading/trailing-stops.d.ts +240 -0
  72. package/dist/types/alpaca/trading/trailing-stops.d.ts.map +1 -0
  73. package/dist/types/index.d.ts +353 -6
  74. package/dist/types/index.d.ts.map +1 -1
  75. package/package.json +4 -4
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Option Data Stream Module
3
+ * Real-time options quotes, trades, and bars via Alpaca WebSocket
4
+ *
5
+ * Uses the official Alpaca SDK option_stream for reliable real-time data.
6
+ * Provides automatic reconnection, subscription management, and type-safe events.
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ import { AlpacaClient } from '../client';
10
+ import { AlpacaOptionTradeStream, AlpacaOptionQuoteStream, AlpacaOptionBarStream, AlpacaOptionStreamMessage } from '../../types/alpaca-types';
11
+ import { StreamConfig, StreamState, SubscriptionRequest } from './base-stream';
12
+ /**
13
+ * Option stream data feed type
14
+ */
15
+ export type OptionDataFeed = 'opra' | 'indicative';
16
+ /**
17
+ * Option stream configuration
18
+ */
19
+ export interface OptionStreamConfig extends StreamConfig {
20
+ /** Data feed to use */
21
+ feed: OptionDataFeed;
22
+ }
23
+ /**
24
+ * Default option stream configuration
25
+ */
26
+ export declare const DEFAULT_OPTION_STREAM_CONFIG: Partial<OptionStreamConfig>;
27
+ /**
28
+ * Option stream event map for type-safe event handling
29
+ */
30
+ export interface OptionStreamEventMap {
31
+ trade: AlpacaOptionTradeStream;
32
+ quote: AlpacaOptionQuoteStream;
33
+ bar: AlpacaOptionBarStream;
34
+ data: AlpacaOptionStreamMessage;
35
+ subscription: {
36
+ trades: string[];
37
+ quotes: string[];
38
+ };
39
+ authenticated: void;
40
+ connected: void;
41
+ disconnected: {
42
+ code: number;
43
+ reason: string;
44
+ };
45
+ stateChange: StreamState;
46
+ error: Error;
47
+ }
48
+ /**
49
+ * Option Data Stream class for receiving real-time options market data
50
+ * Uses the official Alpaca SDK option_stream for WebSocket management.
51
+ */
52
+ export declare class OptionDataStream extends EventEmitter {
53
+ private client;
54
+ private socket;
55
+ private state;
56
+ private feed;
57
+ private config;
58
+ private subscriptions;
59
+ private pendingSubscriptions;
60
+ constructor(client: AlpacaClient, config?: Partial<OptionStreamConfig>);
61
+ /**
62
+ * Log helper
63
+ */
64
+ private log;
65
+ /**
66
+ * Get the current stream state
67
+ */
68
+ getState(): StreamState;
69
+ /**
70
+ * Check if stream is connected and authenticated
71
+ */
72
+ isStreamConnected(): boolean;
73
+ /**
74
+ * Get current subscriptions
75
+ */
76
+ getSubscriptions(): SubscriptionRequest;
77
+ /**
78
+ * Set the data feed
79
+ */
80
+ setFeed(feed: OptionDataFeed): void;
81
+ /**
82
+ * Get the current data feed
83
+ */
84
+ getFeed(): OptionDataFeed;
85
+ /**
86
+ * Connect to the option data stream using SDK
87
+ */
88
+ connect(): Promise<void>;
89
+ /**
90
+ * Set up all data event handlers for SDK
91
+ */
92
+ private setupDataHandlers;
93
+ /**
94
+ * Disconnect from the option data stream
95
+ */
96
+ disconnect(): void;
97
+ /**
98
+ * Subscribe to market data
99
+ */
100
+ subscribe(request: SubscriptionRequest): void;
101
+ /**
102
+ * Unsubscribe from market data
103
+ */
104
+ unsubscribe(request: SubscriptionRequest): void;
105
+ /**
106
+ * Subscribe to option trades
107
+ */
108
+ subscribeTrades(symbols: string[]): void;
109
+ /**
110
+ * Subscribe to option quotes
111
+ */
112
+ subscribeQuotes(symbols: string[]): void;
113
+ /**
114
+ * Subscribe to option bars (not supported by SDK - logs warning)
115
+ */
116
+ subscribeBars(symbols: string[]): void;
117
+ /**
118
+ * Subscribe to all data types for option symbols
119
+ */
120
+ subscribeAll(symbols: string[]): void;
121
+ /**
122
+ * Unsubscribe from option trades
123
+ */
124
+ unsubscribeTrades(symbols: string[]): void;
125
+ /**
126
+ * Unsubscribe from option quotes
127
+ */
128
+ unsubscribeQuotes(symbols: string[]): void;
129
+ /**
130
+ * Unsubscribe from option bars (not supported)
131
+ */
132
+ unsubscribeBars(symbols: string[]): void;
133
+ /**
134
+ * Unsubscribe from all data types for option symbols
135
+ */
136
+ unsubscribeAll(symbols: string[]): void;
137
+ /**
138
+ * Subscribe to options by underlying symbol
139
+ * @param underlying The underlying stock symbol (not used in this implementation)
140
+ * @param contracts Array of option contract symbols to subscribe to
141
+ */
142
+ subscribeByUnderlying(underlying: string, contracts: string[]): void;
143
+ /**
144
+ * Send subscription request using SDK methods
145
+ */
146
+ private sendSubscription;
147
+ /**
148
+ * Send unsubscription request using SDK methods
149
+ */
150
+ private sendUnsubscription;
151
+ private convertTrade;
152
+ private convertQuote;
153
+ /**
154
+ * Type-safe event listener registration
155
+ */
156
+ on<K extends keyof OptionStreamEventMap>(event: K, listener: (data: OptionStreamEventMap[K]) => void): this;
157
+ /**
158
+ * Type-safe event emitter
159
+ */
160
+ emit<K extends keyof OptionStreamEventMap>(event: K, data?: OptionStreamEventMap[K]): boolean;
161
+ }
162
+ /**
163
+ * Create an option data stream for a client
164
+ */
165
+ export declare function createOptionDataStream(client: AlpacaClient, config?: Partial<OptionStreamConfig>): OptionDataStream;
166
+ export default OptionDataStream;
167
+ //# sourceMappingURL=option-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-stream.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/streams/option-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Stock Data Stream Module
3
+ * Real-time stock quotes, trades, and bars via Alpaca WebSocket
4
+ *
5
+ * Uses the official Alpaca SDK data_stream_v2 for reliable real-time data.
6
+ * Provides automatic reconnection, subscription management, and type-safe events.
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ import { AlpacaClient } from '../client';
10
+ import { AlpacaTradeStream, AlpacaQuoteStream, AlpacaBarStream, AlpacaDailyBarStream, AlpacaUpdatedBarStream, AlpacaTradingStatusStream, AlpacaLULDStream, AlpacaTradeCorrectionStream, AlpacaTradeCancelStream, AlpacaOrderImbalanceStream, AlpacaStockStreamMessage } from '../../types/alpaca-types';
11
+ import { StreamConfig, StreamState, SubscriptionRequest } from './base-stream';
12
+ /**
13
+ * Stock stream data feed type
14
+ */
15
+ export type StockDataFeed = 'sip' | 'iex' | 'test';
16
+ /**
17
+ * Stock stream configuration
18
+ */
19
+ export interface StockStreamConfig extends StreamConfig {
20
+ /** Data feed to use */
21
+ feed: StockDataFeed;
22
+ }
23
+ /**
24
+ * Default stock stream configuration
25
+ */
26
+ export declare const DEFAULT_STOCK_STREAM_CONFIG: Partial<StockStreamConfig>;
27
+ /**
28
+ * Stock stream event map for type-safe event handling
29
+ */
30
+ export interface StockStreamEventMap {
31
+ trade: AlpacaTradeStream;
32
+ quote: AlpacaQuoteStream;
33
+ bar: AlpacaBarStream;
34
+ dailyBar: AlpacaDailyBarStream;
35
+ updatedBar: AlpacaUpdatedBarStream;
36
+ tradingStatus: AlpacaTradingStatusStream;
37
+ luld: AlpacaLULDStream;
38
+ tradeCorrection: AlpacaTradeCorrectionStream;
39
+ tradeCancel: AlpacaTradeCancelStream;
40
+ orderImbalance: AlpacaOrderImbalanceStream;
41
+ data: AlpacaStockStreamMessage;
42
+ subscription: {
43
+ trades: string[];
44
+ quotes: string[];
45
+ bars: string[];
46
+ };
47
+ authenticated: void;
48
+ connected: void;
49
+ disconnected: {
50
+ code: number;
51
+ reason: string;
52
+ };
53
+ stateChange: StreamState;
54
+ error: Error;
55
+ }
56
+ /**
57
+ * Stock Data Stream class for receiving real-time stock market data
58
+ * Uses the official Alpaca SDK data_stream_v2 for WebSocket management.
59
+ */
60
+ export declare class StockDataStream extends EventEmitter {
61
+ private client;
62
+ private socket;
63
+ private state;
64
+ private feed;
65
+ private config;
66
+ private subscriptions;
67
+ private pendingSubscriptions;
68
+ constructor(client: AlpacaClient, config?: Partial<StockStreamConfig>);
69
+ /**
70
+ * Log helper
71
+ */
72
+ private log;
73
+ /**
74
+ * Get the current stream state
75
+ */
76
+ getState(): StreamState;
77
+ /**
78
+ * Check if stream is connected and authenticated
79
+ */
80
+ isStreamConnected(): boolean;
81
+ /**
82
+ * Get current subscriptions
83
+ */
84
+ getSubscriptions(): SubscriptionRequest;
85
+ /**
86
+ * Set the data feed
87
+ */
88
+ setFeed(feed: StockDataFeed): void;
89
+ /**
90
+ * Get the current data feed
91
+ */
92
+ getFeed(): StockDataFeed;
93
+ /**
94
+ * Connect to the stock data stream using SDK
95
+ */
96
+ connect(): Promise<void>;
97
+ /**
98
+ * Set up all data event handlers for SDK
99
+ */
100
+ private setupDataHandlers;
101
+ /**
102
+ * Disconnect from the stock data stream
103
+ */
104
+ disconnect(): void;
105
+ /**
106
+ * Subscribe to market data
107
+ */
108
+ subscribe(request: SubscriptionRequest): void;
109
+ /**
110
+ * Unsubscribe from market data
111
+ */
112
+ unsubscribe(request: SubscriptionRequest): void;
113
+ /**
114
+ * Subscribe to stock trades
115
+ */
116
+ subscribeTrades(symbols: string[]): void;
117
+ /**
118
+ * Subscribe to stock quotes
119
+ */
120
+ subscribeQuotes(symbols: string[]): void;
121
+ /**
122
+ * Subscribe to stock bars
123
+ */
124
+ subscribeBars(symbols: string[]): void;
125
+ /**
126
+ * Subscribe to all data types for symbols
127
+ */
128
+ subscribeAll(symbols: string[]): void;
129
+ /**
130
+ * Unsubscribe from stock trades
131
+ */
132
+ unsubscribeTrades(symbols: string[]): void;
133
+ /**
134
+ * Unsubscribe from stock quotes
135
+ */
136
+ unsubscribeQuotes(symbols: string[]): void;
137
+ /**
138
+ * Unsubscribe from stock bars
139
+ */
140
+ unsubscribeBars(symbols: string[]): void;
141
+ /**
142
+ * Unsubscribe from all data types for symbols
143
+ */
144
+ unsubscribeAll(symbols: string[]): void;
145
+ /**
146
+ * Send subscription request using SDK methods
147
+ */
148
+ private sendSubscription;
149
+ /**
150
+ * Send unsubscription request using SDK methods
151
+ */
152
+ private sendUnsubscription;
153
+ private convertTrade;
154
+ private convertQuote;
155
+ private convertBar;
156
+ private convertDailyBar;
157
+ private convertUpdatedBar;
158
+ private convertStatus;
159
+ private convertLuld;
160
+ private convertCancelError;
161
+ private convertCorrection;
162
+ /**
163
+ * Type-safe event listener registration
164
+ */
165
+ on<K extends keyof StockStreamEventMap>(event: K, listener: (data: StockStreamEventMap[K]) => void): this;
166
+ /**
167
+ * Type-safe event emitter
168
+ */
169
+ emit<K extends keyof StockStreamEventMap>(event: K, data?: StockStreamEventMap[K]): boolean;
170
+ }
171
+ /**
172
+ * Create a stock data stream for a client
173
+ */
174
+ export declare function createStockDataStream(client: AlpacaClient, config?: Partial<StockStreamConfig>): StockDataStream;
175
+ export default StockDataStream;
176
+ //# sourceMappingURL=stock-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stock-stream.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/streams/stock-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Stream Manager Module
3
+ * Unified management of all Alpaca WebSocket streams with connection pooling and coordination.
4
+ *
5
+ * Features:
6
+ * - Centralized stream lifecycle management
7
+ * - Connection pooling and reuse
8
+ * - Automatic reconnection handling
9
+ * - Coordinated subscriptions across streams
10
+ * - Health monitoring and status reporting
11
+ * - Graceful shutdown
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const client = createAlpacaClient(config);
16
+ * const manager = createStreamManager(client);
17
+ *
18
+ * // Connect to specific streams
19
+ * await manager.connectTrading();
20
+ * await manager.connectStockData();
21
+ *
22
+ * // Or connect to all streams at once
23
+ * await manager.connectAll();
24
+ *
25
+ * // Get status
26
+ * const status = manager.getStatus();
27
+ * console.log(status); // { trading: true, stock: true, option: false, crypto: false }
28
+ *
29
+ * // Use individual streams
30
+ * const tradingStream = manager.getTradingStream();
31
+ * tradingStream?.on('fill', (update) => console.log('Order filled!'));
32
+ *
33
+ * // Graceful shutdown
34
+ * await manager.disconnectAll();
35
+ * ```
36
+ */
37
+ import { AlpacaClient } from '../client';
38
+ import { EventEmitter } from 'events';
39
+ import { TradingStream } from './trading-stream';
40
+ import { StockDataStream, StockStreamConfig } from './stock-stream';
41
+ import { OptionDataStream, OptionStreamConfig } from './option-stream';
42
+ import { CryptoDataStream, CryptoStreamConfig } from './crypto-stream';
43
+ import { StreamConfig, StreamState, SubscriptionRequest } from './base-stream';
44
+ /**
45
+ * Stream connection status for all managed streams
46
+ */
47
+ export interface StreamStatus {
48
+ /** Trading stream connected status */
49
+ trading: boolean;
50
+ /** Stock data stream connected status */
51
+ stock: boolean;
52
+ /** Option data stream connected status */
53
+ option: boolean;
54
+ /** Crypto data stream connected status */
55
+ crypto: boolean;
56
+ }
57
+ /**
58
+ * Detailed stream status with state information
59
+ */
60
+ export interface DetailedStreamStatus {
61
+ trading: {
62
+ connected: boolean;
63
+ state: StreamState;
64
+ };
65
+ stock: {
66
+ connected: boolean;
67
+ state: StreamState;
68
+ };
69
+ option: {
70
+ connected: boolean;
71
+ state: StreamState;
72
+ };
73
+ crypto: {
74
+ connected: boolean;
75
+ state: StreamState;
76
+ };
77
+ }
78
+ /**
79
+ * Stream manager configuration
80
+ */
81
+ export interface StreamManagerConfig {
82
+ /** Base stream configuration */
83
+ baseConfig: Partial<StreamConfig>;
84
+ /** Stock stream specific configuration */
85
+ stockConfig: Partial<StockStreamConfig>;
86
+ /** Option stream specific configuration */
87
+ optionConfig: Partial<OptionStreamConfig>;
88
+ /** Crypto stream specific configuration */
89
+ cryptoConfig: Partial<CryptoStreamConfig>;
90
+ /** Auto-connect streams on creation */
91
+ autoConnect: boolean;
92
+ /** Enable health monitoring */
93
+ healthMonitoring: boolean;
94
+ /** Health check interval in milliseconds */
95
+ healthCheckInterval: number;
96
+ }
97
+ /**
98
+ * Default stream manager configuration
99
+ */
100
+ export declare const DEFAULT_STREAM_MANAGER_CONFIG: StreamManagerConfig;
101
+ /**
102
+ * Stream manager event map
103
+ */
104
+ export interface StreamManagerEventMap {
105
+ 'stream:connected': {
106
+ stream: 'trading' | 'stock' | 'option' | 'crypto';
107
+ };
108
+ 'stream:disconnected': {
109
+ stream: 'trading' | 'stock' | 'option' | 'crypto';
110
+ code: number;
111
+ reason: string;
112
+ };
113
+ 'stream:error': {
114
+ stream: 'trading' | 'stock' | 'option' | 'crypto';
115
+ error: Error;
116
+ };
117
+ 'all:connected': void;
118
+ 'all:disconnected': void;
119
+ 'health:check': StreamStatus;
120
+ }
121
+ /**
122
+ * Unified Stream Manager
123
+ * Manages all WebSocket connections for a client with connection pooling and coordination.
124
+ */
125
+ export declare class StreamManager extends EventEmitter {
126
+ private client;
127
+ private config;
128
+ private tradingStream;
129
+ private stockStream;
130
+ private optionStream;
131
+ private cryptoStream;
132
+ private healthCheckTimer;
133
+ private isShuttingDown;
134
+ constructor(client: AlpacaClient, config?: Partial<StreamManagerConfig>);
135
+ /**
136
+ * Connect to the trading stream
137
+ * @returns The connected trading stream
138
+ */
139
+ connectTrading(): Promise<TradingStream>;
140
+ /**
141
+ * Connect to the stock data stream
142
+ * @returns The connected stock data stream
143
+ */
144
+ connectStockData(): Promise<StockDataStream>;
145
+ /**
146
+ * Connect to the options data stream
147
+ * @returns The connected option data stream
148
+ */
149
+ connectOptionData(): Promise<OptionDataStream>;
150
+ /**
151
+ * Connect to the crypto data stream
152
+ * @returns The connected crypto data stream
153
+ */
154
+ connectCryptoData(): Promise<CryptoDataStream>;
155
+ /**
156
+ * Connect all streams concurrently
157
+ */
158
+ connectAll(): Promise<void>;
159
+ /**
160
+ * Connect only market data streams (stock, option, crypto)
161
+ */
162
+ connectMarketData(): Promise<void>;
163
+ /**
164
+ * Disconnect from the trading stream
165
+ */
166
+ disconnectTrading(): void;
167
+ /**
168
+ * Disconnect from the stock data stream
169
+ */
170
+ disconnectStockData(): void;
171
+ /**
172
+ * Disconnect from the option data stream
173
+ */
174
+ disconnectOptionData(): void;
175
+ /**
176
+ * Disconnect from the crypto data stream
177
+ */
178
+ disconnectCryptoData(): void;
179
+ /**
180
+ * Disconnect all streams
181
+ */
182
+ disconnectAll(): void;
183
+ /**
184
+ * Graceful shutdown - disconnect all streams and cleanup
185
+ */
186
+ shutdown(): Promise<void>;
187
+ /**
188
+ * Get simple connection status
189
+ */
190
+ getStatus(): StreamStatus;
191
+ /**
192
+ * Get detailed connection status with state information
193
+ */
194
+ getDetailedStatus(): DetailedStreamStatus;
195
+ /**
196
+ * Check if any stream is connected
197
+ */
198
+ isAnyConnected(): boolean;
199
+ /**
200
+ * Check if all streams are connected
201
+ */
202
+ isAllConnected(): boolean;
203
+ /**
204
+ * Get the trading stream (may be null if not connected)
205
+ */
206
+ getTradingStream(): TradingStream | null;
207
+ /**
208
+ * Get the stock data stream (may be null if not connected)
209
+ */
210
+ getStockStream(): StockDataStream | null;
211
+ /**
212
+ * Get the option data stream (may be null if not connected)
213
+ */
214
+ getOptionStream(): OptionDataStream | null;
215
+ /**
216
+ * Get the crypto data stream (may be null if not connected)
217
+ */
218
+ getCryptoStream(): CryptoDataStream | null;
219
+ /**
220
+ * Subscribe to stock market data
221
+ */
222
+ subscribeStocks(request: SubscriptionRequest): void;
223
+ /**
224
+ * Subscribe to option market data
225
+ */
226
+ subscribeOptions(request: SubscriptionRequest): void;
227
+ /**
228
+ * Subscribe to crypto market data
229
+ */
230
+ subscribeCrypto(request: SubscriptionRequest): void;
231
+ /**
232
+ * Unsubscribe from stock market data
233
+ */
234
+ unsubscribeStocks(request: SubscriptionRequest): void;
235
+ /**
236
+ * Unsubscribe from option market data
237
+ */
238
+ unsubscribeOptions(request: SubscriptionRequest): void;
239
+ /**
240
+ * Unsubscribe from crypto market data
241
+ */
242
+ unsubscribeCrypto(request: SubscriptionRequest): void;
243
+ /**
244
+ * Get all current subscriptions
245
+ */
246
+ getAllSubscriptions(): {
247
+ stock: SubscriptionRequest;
248
+ option: SubscriptionRequest;
249
+ crypto: SubscriptionRequest;
250
+ };
251
+ /**
252
+ * Setup event handlers for a stream
253
+ */
254
+ private setupStreamEventHandlers;
255
+ /**
256
+ * Start health monitoring
257
+ */
258
+ private startHealthMonitoring;
259
+ /**
260
+ * Stop health monitoring
261
+ */
262
+ private stopHealthMonitoring;
263
+ /**
264
+ * Type-safe event listener registration
265
+ */
266
+ on<K extends keyof StreamManagerEventMap>(event: K, listener: (data: StreamManagerEventMap[K]) => void): this;
267
+ /**
268
+ * Type-safe event emitter
269
+ */
270
+ emit<K extends keyof StreamManagerEventMap>(event: K, data?: StreamManagerEventMap[K]): boolean;
271
+ }
272
+ /**
273
+ * Create a stream manager for a client
274
+ */
275
+ export declare function createStreamManager(client: AlpacaClient, config?: Partial<StreamManagerConfig>): StreamManager;
276
+ export default StreamManager;
277
+ //# sourceMappingURL=stream-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-manager.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/streams/stream-manager.ts"],"names":[],"mappings":"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"}