import { OrderbookLevel5EventCallback } from './model_orderbook_level5_event';
import { KlinesEventCallback } from './model_klines_event';
import { CallAuctionInfoEventCallback } from './model_call_auction_info_event';
import { TickerEventCallback } from './model_ticker_event';
import { SymbolSnapshotEventCallback } from './model_symbol_snapshot_event';
import { OrderbookLevel1EventCallback } from './model_orderbook_level1_event';
import { AllTickersEventCallback } from './model_all_tickers_event';
import { OrderbookIncrementEventCallback } from './model_orderbook_increment_event';
import { TradeEventCallback } from './model_trade_event';
import { OrderbookLevel50EventCallback } from './model_orderbook_level50_event';
import { MarketSnapshotEventCallback } from './model_market_snapshot_event';
import { CallAuctionOrderbookLevel50EventCallback } from './model_call_auction_orderbook_level50_event';
import { WebSocketService } from '../../../internal/interfaces/websocket';
export interface SpotPublicWS {
    /**
     * allTickers Get All Tickers
     * Subscribe to this topic to get pushes on all market symbol BBO changes.
     * push frequency: once every 100ms
     */
    allTickers(callback: AllTickersEventCallback): Promise<string>;
    /**
     * callAuctionInfo Get Call Auction Info
     * Subscribe to this topic to get the specified symbol call auction info.
     * push frequency: once every 100ms
     */
    callAuctionInfo(symbol: string, callback: CallAuctionInfoEventCallback): Promise<string>;
    /**
     * callAuctionOrderbookLevel50 CallAuctionOrderbook - Level50
     * The system will return the call auction 50 best ask/bid orders data; if there is no change in the market, data will not be pushed
     * push frequency: once every 100ms
     */
    callAuctionOrderbookLevel50(symbol: string, callback: CallAuctionOrderbookLevel50EventCallback): Promise<string>;
    /**
     * klines Klines
     * Subscribe to this topic to get K-Line data.
     * push frequency: real-time
     */
    klines(symbol: string, type: string, callback: KlinesEventCallback): Promise<string>;
    /**
     * marketSnapshot Market Snapshot
     * Subscribe to this topic to get snapshot data for the entire market.
     * push frequency: once every 2s
     */
    marketSnapshot(market: string, callback: MarketSnapshotEventCallback): Promise<string>;
    /**
     * orderbookIncrement Orderbook - Increment
     * The system will return the increment change orderbook data (all depths); a topic supports up to 100 symbols. If there is no change in the market, data will not be pushed
     * push frequency: real-time
     */
    orderbookIncrement(symbol: Array<string>, callback: OrderbookIncrementEventCallback): Promise<string>;
    /**
     * orderbookLevel1 Orderbook - Level1
     * The system will return the 1 best ask/bid orders data; a topic supports up to 100 symbols. If there is no change in the market, data will not be pushed
     * push frequency: once every 10ms
     */
    orderbookLevel1(symbol: Array<string>, callback: OrderbookLevel1EventCallback): Promise<string>;
    /**
     * orderbookLevel50 Orderbook - Level50
     * The system will return data for the 50 best ask/bid orders; a topic supports up to 100 symbols. If there is no change in the market, data will not be pushed
     * push frequency: once every 100ms
     */
    orderbookLevel50(symbol: Array<string>, callback: OrderbookLevel50EventCallback): Promise<string>;
    /**
     * orderbookLevel5 Orderbook - Level5
     * The system will return the 5 best ask/bid orders data; a topic supports up to 100 symbols. If there is no change in the market, data will not be pushed
     * push frequency: once every 100ms
     */
    orderbookLevel5(symbol: Array<string>, callback: OrderbookLevel5EventCallback): Promise<string>;
    /**
     * symbolSnapshot Symbol Snapshot
     * Subscribe to get snapshot data for a single symbol.
     * push frequency: once every 2s
     */
    symbolSnapshot(symbol: string, callback: SymbolSnapshotEventCallback): Promise<string>;
    /**
     * ticker Get Ticker
     * Subscribe to this topic to get specified symbol pushes on BBO changes.
     * push frequency: once every 100ms
     */
    ticker(symbol: Array<string>, callback: TickerEventCallback): Promise<string>;
    /**
     * trade Trade
     * Subscribe to this topic to get Level 3 matching event data flows. A topic supports up to 100 symbols.
     * push frequency: real-time
     */
    trade(symbol: Array<string>, callback: TradeEventCallback): Promise<string>;
    /**
     * Unsubscribe from topics
     */
    unSubscribe(id: string): Promise<void>;
    /**
     * Start websocket
     */
    start(): Promise<void>;
    /**
     * Stop websocket
     */
    stop(): Promise<void>;
}
export declare class SpotPublicWSImpl implements SpotPublicWS {
    private wsService;
    constructor(wsService: WebSocketService);
    allTickers(callback: AllTickersEventCallback): Promise<string>;
    callAuctionInfo(symbol: string, callback: CallAuctionInfoEventCallback): Promise<string>;
    callAuctionOrderbookLevel50(symbol: string, callback: CallAuctionOrderbookLevel50EventCallback): Promise<string>;
    klines(symbol: string, type: string, callback: KlinesEventCallback): Promise<string>;
    marketSnapshot(market: string, callback: MarketSnapshotEventCallback): Promise<string>;
    orderbookIncrement(symbol: Array<string>, callback: OrderbookIncrementEventCallback): Promise<string>;
    orderbookLevel1(symbol: Array<string>, callback: OrderbookLevel1EventCallback): Promise<string>;
    orderbookLevel50(symbol: Array<string>, callback: OrderbookLevel50EventCallback): Promise<string>;
    orderbookLevel5(symbol: Array<string>, callback: OrderbookLevel5EventCallback): Promise<string>;
    symbolSnapshot(symbol: string, callback: SymbolSnapshotEventCallback): Promise<string>;
    ticker(symbol: Array<string>, callback: TickerEventCallback): Promise<string>;
    trade(symbol: Array<string>, callback: TradeEventCallback): Promise<string>;
    unSubscribe(id: string): Promise<void>;
    start(): Promise<void>;
    stop(): Promise<void>;
}
