import { BookChange, BookTicker, DerivativeTicker, Trade } from '../types';
import { Mapper } from './mapper';
export declare const wooxTradesMapper: Mapper<'woo-x', Trade>;
export declare class WooxBookChangeMapper implements Mapper<'woo-x', BookChange> {
    private readonly _symbolToDepthInfoMapping;
    canHandle(message: WooxOrderbookMessage | WooxOrderbookupdateMessage): boolean;
    getFilters(symbols?: string[]): {
        channel: string;
        symbols: string[] | undefined;
    }[];
    map(message: WooxOrderbookMessage | WooxOrderbookupdateMessage, localTimestamp: Date): IterableIterator<BookChange>;
    private _mapBookDepthUpdate;
    private _mapBookLevel;
}
export declare class WooxDerivativeTickerMapper implements Mapper<'woo-x', DerivativeTicker> {
    private readonly pendingTickerInfoHelper;
    private readonly _indexPrices;
    canHandle(message: WooxTradeMessage | WooxEstFundingRate | WooxMarkPrice | WooxIndexPrice | WooxOpenInterest): boolean;
    getFilters(symbols?: string[]): {
        channel: string;
        symbols: string[] | undefined;
    }[];
    map(message: any, localTimestamp: Date): IterableIterator<DerivativeTicker>;
}
export declare class WooxBookTickerMapper implements Mapper<'woo-x', BookTicker> {
    canHandle(message: WooxTradeMessage): boolean;
    getFilters(symbols?: string[]): {
        channel: string;
        symbols: string[] | undefined;
    }[];
    map(wooxBBOMessage: WooxBBOMessage, localTimestamp: Date): Generator<BookTicker, void, unknown>;
}
type WooxTradeMessage = {
    topic: 'PERP_GALA_USDT@trade';
    ts: 1674431999995;
    data: {
        symbol: 'PERP_GALA_USDT';
        price: 0.048756;
        size: 4109;
        side: 'SELL';
        source: 0;
    };
};
type WooxOrderbookupdateMessage = {
    topic: 'PERP_BTC_USDT@orderbookupdate';
    ts: 1674432000020;
    data: {
        symbol: 'PERP_BTC_USDT';
        prevTs: 1674432000030;
        asks: [[22712.7, 15.4675]];
        bids: [[22708.0, 4.503]];
    };
};
type WooxOrderbookMessage = {
    id: 'PERP_BTC_USDT@orderbook';
    event: 'request';
    success: true;
    ts: 1674432000034;
    data: {
        symbol: 'PERP_BTC_USDT';
        ts: 1674432000020;
        asks: [[22712.7, 15.4675], [26772.1, 0.248]];
        bids: [[22708.0, 4.503], [18555.0, 0.002]];
    };
};
type WooxBBOMessage = {
    topic: 'SPOT_ETH_USDT@bbo';
    ts: 1674431999996;
    data: {
        symbol: 'SPOT_ETH_USDT';
        ask: 1627.61;
        askSize: 38.3755;
        bid: 1627.26;
        bidSize: 20.424926;
    };
};
type WooxMarkPrice = {
    topic: 'PERP_BTC_USDT@markprice';
    ts: 1674432000007;
    data: {
        symbol: 'PERP_BTC_USDT';
        price: 22711.11;
    };
};
type WooxEstFundingRate = {
    topic: 'PERP_BTC_USDT@estfundingrate';
    ts: 1674432059002;
    data: {
        symbol: 'PERP_BTC_USDT';
        fundingRate: 0.00000782;
        fundingTs: 1674435600005;
    };
};
type WooxIndexPrice = {
    topic: 'SPOT_BTC_USDT@indexprice';
    ts: 1674432000024;
    data: {
        symbol: 'SPOT_BTC_USDT';
        price: 22708.44;
    };
};
type WooxOpenInterest = {
    topic: 'PERP_BTC_USDT@openinterest';
    ts: 1674432013624;
    data: {
        symbol: 'PERP_BTC_USDT';
        openInterest: 83.2241;
    };
};
export {};
//# sourceMappingURL=woox.d.ts.map