import { Packet, PacketMap, PacketType, RequestPacket, ResponsePacket } from "../protocol/index.js"; export interface BoticaClient { connect(): Promise; isConnected(): boolean; registerOrderListener(action: string, callback: OrderListener): void; publishOrder(key: string, action: string, payload: string): Promise; registerPacketListener

(packetType: P["type"], callback: PacketListener

): void; registerQueryListener, ResponsePacketT extends ResponsePacket>(packetType: T, callback: QueryListener): void; sendPacket(packet: Packet): Promise; sendQuery(packet: RequestPacket, callback: PacketListener, timeoutCallback: () => void): Promise; sendQuery(packet: RequestPacket, callback: PacketListener, timeoutCallback: () => void, timeoutMs: number): Promise; close(): Promise; } export type OrderListener = (payload: any, action: string) => void | Promise; export type PacketListener

= (packet: P) => void; export type QueryListener, ResponsePacketT extends ResponsePacket> = (request: RequestPacketT) => Promise;