import { BookChange, Exchange, BookTicker, Trade, DerivativeTicker } from '../types.ts';
import { Mapper } from './mapper.ts';
export declare class CryptoComTradesMapper implements Mapper<'crypto-com', Trade> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: CryptoComTradeMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "trade";
        readonly symbols: string[] | undefined;
    }[];
    map(message: CryptoComTradeMessage, localTimestamp: Date): IterableIterator<Trade>;
}
export declare class CryptoComBookChangeMapper implements Mapper<'crypto-com', BookChange> {
    protected readonly _exchange: Exchange;
    constructor(_exchange: Exchange);
    canHandle(message: CryptoComBookMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "book";
        readonly symbols: string[] | undefined;
    }[];
    map(message: CryptoComBookMessage, localTimestamp: Date): Generator<{
        readonly type: "book_change";
        readonly symbol: "ETH_CRO" | "BTCUSD-PERP" | "DOT_USDT";
        readonly exchange: "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish";
        readonly isSnapshot: boolean;
        readonly bids: {
            price: number;
            amount: number;
        }[];
        readonly asks: {
            price: number;
            amount: number;
        }[];
        readonly timestamp: Date;
        readonly localTimestamp: Date;
    }, void, unknown>;
    private _mapBookLevel;
}
export declare class CryptoComBookTickerMapper implements Mapper<'crypto-com', BookTicker> {
    protected readonly _exchange: Exchange;
    constructor(_exchange: Exchange);
    canHandle(message: CryptoComTickerMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "ticker";
        readonly symbols: string[] | undefined;
    }[];
    map(message: CryptoComTickerMessage, localTimestamp: Date): Generator<BookTicker, void, unknown>;
}
export declare class CryptoComDerivativeTickerMapper implements Mapper<'crypto-com', DerivativeTicker> {
    protected readonly exchange: Exchange;
    private readonly pendingTickerInfoHelper;
    private readonly _indexPrices;
    constructor(exchange: Exchange);
    canHandle(message: CryptoComDerivativesTickerMessage | CryptoComIndexMessage | CryptoComMarkPriceMessage | CryptoComFundingMessage): boolean;
    getFilters(symbols?: string[]): ({
        readonly channel: "ticker";
        readonly symbols: string[] | undefined;
    } | {
        readonly channel: "index";
        readonly symbols: string[];
    } | {
        readonly channel: "mark";
        readonly symbols: string[] | undefined;
    } | {
        readonly channel: "funding";
        readonly symbols: string[] | undefined;
    } | {
        readonly channel: "estimatedfunding";
        readonly symbols: string[] | undefined;
    })[];
    map(message: CryptoComDerivativesTickerMessage | CryptoComIndexMessage | CryptoComMarkPriceMessage | CryptoComFundingMessage | CryptoComEstFundingMessage, localTimestamp: Date): IterableIterator<DerivativeTicker>;
}
type CryptoComTradeMessage = {
    method: 'subscribe';
    result: {
        instrument_name: 'ETH_CRO';
        subscription: 'trade.ETH_CRO';
        channel: 'trade';
        data: [
            {
                p: 162.12;
                q: 11.085;
                s: 'BUY';
                d: 1210447366;
                t: 1587523078844;
                dataTime: 0;
            }
        ];
    };
} | {
    id: -1;
    code: 0;
    method: 'subscribe';
    result: {
        channel: 'trade';
        subscription: 'trade.BTCUSD-PERP';
        instrument_name: 'BTCUSD-PERP';
        data: [{
            d: '4611686018439397540';
            t: 1653992578435;
            p: '31603.5';
            q: '0.1000';
            s: 'BUY';
            i: 'BTCUSD-PERP';
        }];
    };
};
type CryptoComBookMessage = {
    code: 0;
    method: 'subscribe';
    result: {
        instrument_name: 'ETH_CRO';
        subscription: 'book.ETH_CRO.150';
        channel: 'book';
        depth: 150;
        data: [
            {
                bids: [number, number][];
                asks: [number, number][];
                t: 1659311999933;
                s: 788293808;
            }
        ];
    };
} | {
    code: 0;
    method: 'subscribe';
    result: {
        instrument_name: 'DOT_USDT';
        subscription: 'book.DOT_USDT.150';
        channel: 'book.update';
        depth: 150;
        data: [
            {
                update: {
                    bids: [number, number][];
                    asks: [number, number][];
                };
                t: 1659312000046;
                s: 763793123;
            }
        ];
    };
} | {
    id: -1;
    code: 0;
    method: 'subscribe';
    result: {
        channel: 'book.update';
        subscription: 'book.BTCUSD-PERP.50';
        instrument_name: 'BTCUSD-PERP';
        depth: 50;
        data: [
            {
                update: {
                    asks: [string, string][];
                    bids: [string, string][];
                };
                t: 1653992578436;
                tt: 1653992578428;
                u: 72560693920;
                pu: 72560688000;
                cs: 380529173;
            }
        ];
    };
};
type CryptoComTickerMessage = {
    code: 0;
    method: 'subscribe';
    result: {
        instrument_name: 'GODS_USDT';
        subscription: 'ticker.GODS_USDT';
        channel: 'ticker';
        data: [
            {
                i: 'GODS_USDT';
                b: 0.4262;
                bs?: 0.1;
                k: 0.4272;
                ks?: 0.2;
                a: 0.4272;
                t: 1659311999946;
                v: 100623.01;
                vv: 42986.1541;
                h: 0.4624;
                l: 0.4229;
                c: -0.0062;
                pc: -1.4302;
            }
        ];
    };
} | CryptoComDerivativesTickerMessage;
type CryptoComDerivativesTickerMessage = {
    id: -1;
    code: 0;
    method: 'subscribe';
    result: {
        channel: 'ticker';
        instrument_name: 'BTCUSD-PERP';
        subscription: 'ticker.BTCUSD-PERP';
        data: [
            {
                h: '32222.5';
                l: '30240.0';
                a: '31611.0';
                c: '0.0320';
                b: '31613.0';
                bs?: '0.1000';
                k: '31613.5';
                ks?: '0.2000';
                i: 'BTCUSD-PERP';
                v: '13206.4884';
                vv: '433945264.39';
                oi: '318.5162';
                t: 1653992543383;
            }
        ];
    };
} | {
    id: 2;
    method: 'subscribe';
    code: 0;
    result: {
        instrument_name: 'ESUSD-PERP';
        subscription: 'ticker.ESUSD-PERP';
        channel: 'ticker';
        data: [
            {
                h: '0.09625';
                l: '0.09230';
                a: '0.09481';
                c: '-0.0038';
                b: '0.09451';
                bs: '1';
                k: '0.09452';
                ks: '8461';
                i: 'ESUSD-PERP';
                v: '115';
                vv: '10.84';
                oi: '78522';
                t: 1765238404604;
            }
        ];
    };
} | {
    id: -1;
    code: 0;
    method: 'subscribe';
    result: {
        channel: 'ticker';
        instrument_name: 'MATIC_USD';
        subscription: 'ticker.MATIC_USD';
        id: 1;
        data: [
            {
                h: '1.24383';
                l: '1.18086';
                a: '1.19604';
                c: '-0.0315';
                b: '1.19591';
                bs: '0.1';
                k: '1.19643';
                ks: '0.7';
                i: 'MATIC_USD';
                v: '854908.9';
                vv: '1043976.96';
                oi: '0';
                t: 1677628802241;
            }
        ];
    };
};
type CryptoComIndexMessage = {
    id: -1;
    method: 'subscribe';
    code: 0;
    result: {
        instrument_name: 'BTCUSD-INDEX';
        subscription: 'index.BTCUSD-INDEX';
        channel: 'index';
        data: [{
            v: '31601.35';
            t: 1653992545000;
        }];
    };
};
type CryptoComMarkPriceMessage = {
    id: 1;
    method: 'subscribe';
    code: 0;
    result: {
        instrument_name: 'BTCUSD-PERP';
        subscription: 'mark.BTCUSD-PERP';
        channel: 'mark';
        data: [{
            v: '31606.3';
            t: 1653992543000;
        }];
    };
};
type CryptoComFundingMessage = {
    id: -1;
    method: 'subscribe';
    code: 0;
    result: {
        instrument_name: 'BTCUSD-PERP';
        subscription: 'funding.BTCUSD-PERP';
        channel: 'funding';
        data: [{
            v: '0.00000700';
            t: 1653992579000;
        }];
    };
};
type CryptoComEstFundingMessage = {
    id: 1;
    method: 'subscribe';
    code: 0;
    result: {
        instrument_name: 'AAVEUSD-PERP';
        subscription: 'estimatedfunding.AAVEUSD-PERP';
        channel: 'estimatedfunding';
        data: [{
            v: '0.000039493';
            t: 1727308799000;
        }];
    };
};
export {};
//# sourceMappingURL=cryptocom.d.ts.map