okex-api
Version:
A modern, asynchronous, and easy-to-use [Okx API](https://www.okx.com/docs-v5) wrapper for Node.js/bun/Web Browser/Cloudflare workers.
52 lines (51 loc) • 2.49 kB
TypeScript
import { APICredentials } from './utils';
import type { WsTradeOp, WsRequestOp, WsChannel, WsChannelSubUnSubRequestArg, WsEvent, WsTicker, WsTradeOpEvent, WsTradeRequest, WsOrderArg, WsCancelOrderArg, WsPosition, WsAccount, WsOrder } from './types';
interface WsEventMap {
close: CloseEvent;
error: ErrorEvent & WsApiEvent<WsEvent>;
tickers: WsChannelEvent<WsTicker[]>;
positions: WsChannelEvent<WsPosition[]>;
orders: WsChannelEvent<WsOrder[]>;
account: WsChannelEvent<WsAccount[]>;
}
type WsEventMapEx = WsEventMap & Record<WsRequestOp, WsApiEvent<WsEvent>> & Record<`${WsTradeOp}-${string}`, WsApiEvent<WsTradeOpEvent>> & Record<Exclude<WsChannel, keyof WsEventMap>, WsChannelEvent> & Record<string, Event>;
declare class WsApiEvent<T> extends Event {
data: T;
constructor(type: string, data: T);
}
declare class WsChannelEvent<T = any[]> extends Event {
arg: WsChannelSubUnSubRequestArg;
data: T;
constructor(type: string, arg: WsChannelSubUnSubRequestArg, data: T);
}
declare class WsApi extends EventTarget {
private url;
protected ws?: WebSocket;
private shouldReconnect;
constructor(url: string);
addEventListener<K extends keyof WsEventMapEx>(type: K, listener: (ev: WsEventMapEx[K]) => void, options?: AddEventListenerOptions | boolean): void;
connect(): void;
close(): void;
subscribe(wsEvents: WsChannelSubUnSubRequestArg[] | WsChannelSubUnSubRequestArg): Promise<void>;
unsubscribe(wsEvents: WsChannelSubUnSubRequestArg[] | WsChannelSubUnSubRequestArg): Promise<void>;
waitForReady(timeout?: number): Promise<unknown>;
protected send(data: any): Promise<void>;
}
export declare class WsPublic extends WsApi {
static create(baseURL?: string): WsPublic;
constructor(baseURL?: string);
}
export declare class WsPrivate extends WsApi {
private credentials;
static create(apiKey: string, apiSecret: string, passphrase: string, baseURL?: string): Promise<WsPrivate>;
private ready;
constructor(credentials: APICredentials, baseURL?: string);
connect(): void;
waitForReady(timeout?: number): Promise<void>;
sendTradeOp(op: WsTradeRequest<WsOrderArg | WsCancelOrderArg>): Promise<WsTradeOpEvent>;
order(arg: WsOrderArg): Promise<WsTradeOpEvent>;
batchOrder(args: WsOrderArg[]): Promise<WsTradeOpEvent>;
cancelOrder(arg: WsCancelOrderArg): Promise<WsTradeOpEvent>;
batchCancelOrder(args: WsCancelOrderArg[]): Promise<WsTradeOpEvent>;
}
export {};