///
import { EventEmitter } from 'events';
export interface LighterWsSendTx {
type: 'jsonapi/sendtx';
data: {
tx_type: number;
tx_info: string;
};
}
export interface LighterWsSendBatchTx {
type: 'jsonapi/sendtxbatch';
data: {
tx_types: number[];
tx_infos: string[];
};
}
export interface LighterWsTransaction {
hash: string;
type: number;
info: string;
event_info: string;
status: number;
transaction_index: number;
l1_address: string;
account_index: number;
nonce: number;
expire_at: number;
block_height: number;
queued_at: number;
executed_at: number;
sequence_index: number;
parent_hash: string;
}
export interface WsOrderRequest {
id: string;
type: 'SEND_TX' | 'SEND_BATCH_TX';
data: LighterWsSendTx | LighterWsSendBatchTx;
timestamp: number;
}
export interface WsOrderResponse {
id?: string;
success: boolean;
result?: LighterWsTransaction | LighterWsTransaction[];
error?: string;
timestamp: number;
type?: string;
}
export interface WsConnectionConfig {
url: string;
reconnectInterval?: number;
maxReconnectAttempts?: number;
heartbeatInterval?: number;
timeout?: number;
}
export declare class WebSocketOrderClient extends EventEmitter {
private ws;
private config;
private isConnected;
private reconnectAttempts;
private pendingRequests;
private heartbeatTimer;
private reconnectTimer;
private messageId;
constructor(config: WsConnectionConfig);
connect(): Promise;
private handleMessage;
private startHeartbeat;
private stopHeartbeat;
private scheduleReconnect;
sendTransaction(txType: number, txInfo: string): Promise;
sendBatchTransactions(txTypes: number[], txInfos: string[]): Promise;
batchOrders(orders: any[]): Promise;
private sendRequest;
disconnect(): Promise;
isReady(): boolean;
getConnectionStats(): {
isConnected: boolean;
pendingRequests: number;
reconnectAttempts: number;
};
}
//# sourceMappingURL=ws-order-client.d.ts.map