import { MarketSymbol, MARKET_STATUS, MinifiedCandleStick } from "@firefly-exchange/library";
import { GetMarketRecentTradesResponse, PlaceOrderResponse, GetPositionResponse, GetUserTradesResponse, GetAccountDataResponse, MarketData, UserSubscriptionAck, TickerData, OrderSentForSettlementUpdateResponse, OrderRequeueUpdateResponse, OrderCancellationOnReversionUpdateResponse, OrderBookPartialDepth } from "../interfaces/routes";
export declare class Sockets {
    private socketInstance;
    private url;
    private token;
    private callbacks;
    private apiToken;
    constructor(url: string);
    createDynamicUrl(dynamicUrl: string, object: any): string;
    /**
     * Assigns callbacks to desired events
     */
    listen(event: string, callback: Function): Promise<void>;
    /**
     * opens socket instance connection
     */
    open(): void;
    /**
     * 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;
    setAuthToken: (token: string) => void;
    setAPIToken: (apiToken: string) => Promise<void>;
    subscribeUserUpdateByToken(callback?: UserSubscriptionAck): boolean;
    unsubscribeUserUpdateByToken(callback?: UserSubscriptionAck): boolean;
    onOrderBookUpdate: (cb: ({ symbol, orderbook }: any) => void) => void;
    onUserOrderCancellationFailed: (cb: ({ order }: {
        order: PlaceOrderResponse;
    }) => void) => void;
    onCustomEvent: (cb: (payload: any) => void, customEventKey: string) => 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;
    onUserOrderCancellationOnReversionUpdate: (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;
    onDisconnect(): Promise<void>;
    onConnect(): Promise<void>;
}
