import { MarketSymbol, MARKET_STATUS, MinifiedCandleStick } from "@firefly-exchange/library";
import { GetMarketRecentTradesResponse, PlaceOrderResponse, GetPositionResponse, GetUserTradesResponse, GetAccountDataResponse, MarketData, TickerData, OrderSentForSettlementUpdateResponse, OrderRequeueUpdateResponse, OrderCancellationOnReversionUpdateResponse, OrderBookPartialDepth } from "../interfaces/routes";
export declare class WebSockets {
    private socketInstance;
    private token;
    private apiToken;
    private url;
    constructor(url: string);
    createDynamicUrl(dynamicUrl: string, object: any): string;
    /**
     * opens socket instance connection
     */
    open(): Promise<unknown>;
    /**
     * closes the socket instance connection
     */
    close(): void;
    subscribeGlobalUpdatesBySymbol(symbol: MarketSymbol): boolean;
    unsubscribeGlobalUpdatesBySymbol(symbol: MarketSymbol): boolean;
    subscribeOrderBookDepthStreamBySymbol(symbol: MarketSymbol, depth?: string): boolean;
    unsubscribeOrderBookDepthStreamBySymbol(symbol: MarketSymbol, depth?: string): boolean;
    subscribeUserUpdateByToken(): boolean;
    unsubscribeUserUpdateByToken(): boolean;
    setAuthToken: (token: string) => void;
    setAPIToken: (apiToken: string) => Promise<void>;
    onOrderBookUpdate: (cb: ({ symbol, orderbook }: any) => void) => void;
    onOrderBookPartialDepthUpdate: (cb: (payload: OrderBookPartialDepth) => void) => void;
    onMarketDataUpdate: (cb: ({ marketData }: {
        marketData: MarketData;
    }) => void) => void;
    onMarketHealthChange: (cb: ({ status, symbol }: {
        status: MARKET_STATUS;
        symbol: string;
    }) => void) => void;
    onCandleStickUpdate: (symbol: string, interval: string, cb: (candle: MinifiedCandleStick) => void) => void;
    onExchangeHealthChange: (cb: ({ isAlive }: {
        isAlive: boolean;
    }) => void) => void;
    onTickerUpdate: (cb: (tickerData: TickerData[]) => void) => void;
    onRecentTrades: (cb: ({ trades }: {
        trades: GetMarketRecentTradesResponse[];
    }) => void) => void;
    onUserOrderUpdate: (cb: ({ order }: {
        order: PlaceOrderResponse;
    }) => void) => void;
    onUserOrderSentForSettlementUpdate: (cb: (update: OrderSentForSettlementUpdateResponse) => void) => void;
    onUserOrderRequeueUpdate: (cb: (update: OrderRequeueUpdateResponse) => void) => void;
    onUserOrderCancelOnRevertUpdate: (cb: (update: OrderCancellationOnReversionUpdateResponse) => void) => void;
    onUserPositionUpdate: (cb: ({ position }: {
        position: GetPositionResponse;
    }) => void) => void;
    onUserUpdates: (cb: ({ trade }: {
        trade: GetUserTradesResponse;
    }) => void) => void;
    onUserAccountDataUpdate: (cb: ({ accountData }: {
        accountData: GetAccountDataResponse;
    }) => void) => void;
}
