import { CircularBuffer } from '../handy';
import { BookChange, BookTicker, DerivativeTicker, Trade } from '../types';
import { Mapper } from './mapper';
export declare class KucoinFuturesTradesMapper implements Mapper<'kucoin-futures', Trade> {
    canHandle(message: KucoinFuturesTradeMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "contractMarket/execution";
        readonly symbols: string[] | undefined;
    }[];
    map(message: KucoinFuturesTradeMessage, localTimestamp: Date): IterableIterator<Trade>;
}
export declare class KucoinFuturesBookChangeMapper implements Mapper<'kucoin-futures', BookChange> {
    private readonly ignoreBookSnapshotOverlapError;
    protected readonly symbolToDepthInfoMapping: {
        [key: string]: LocalDepthInfo;
    };
    constructor(ignoreBookSnapshotOverlapError: boolean);
    canHandle(message: KucoinFuturesLevel2SnapshotMessage | KucoinFuturesLevel2UpdateMessage): boolean;
    getFilters(symbols?: string[]): ({
        readonly channel: "contractMarket/level2";
        readonly symbols: string[] | undefined;
    } | {
        readonly channel: "contractMarket/level2Snapshot";
        readonly symbols: string[] | undefined;
    })[];
    map(message: KucoinFuturesLevel2SnapshotMessage | KucoinFuturesLevel2UpdateMessage, localTimestamp: Date): Generator<BookChange, void, unknown>;
    protected mapBookDepthUpdate(l2UpdateMessage: KucoinFuturesLevel2UpdateMessage, localTimestamp: Date): BookChange | undefined;
    private mapBookLevel;
    private mapChange;
}
export declare class KucoinFuturesBookTickerMapper implements Mapper<'kucoin-futures', BookTicker> {
    canHandle(message: KucoinFuturesTickerMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "contractMarket/tickerV2";
        readonly symbols: string[] | undefined;
    }[];
    map(message: KucoinFuturesTickerMessage, localTimestamp: Date): Generator<BookTicker, void, unknown>;
}
export declare class KucoinFuturesDerivativeTickerMapper implements Mapper<'kucoin-futures', DerivativeTicker> {
    private readonly pendingTickerInfoHelper;
    private readonly _lastPrices;
    private readonly _openInterests;
    canHandle(message: KucoinFuturesTickerMessage): boolean;
    getFilters(symbols?: string[]): ({
        readonly channel: "contract/instrument";
        readonly symbols: string[] | undefined;
    } | {
        readonly channel: "contractMarket/execution";
        readonly symbols: string[] | undefined;
    } | {
        readonly channel: "contract/details";
        readonly symbols: string[] | undefined;
    })[];
    map(message: KucoinFuturesInstrumentMessage | KucoinFuturesTradeMessage, localTimestamp: Date): IterableIterator<DerivativeTicker>;
}
type KucoinFuturesTradeMessage = {
    topic: '/contractMarket/execution:COMPUSDTM';
    type: 'message';
    subject: 'match';
    sn: 1694749771273;
    data: {
        symbol: 'COMPUSDTM';
        sequence: 1694749771273;
        makerUserId: '64b1a612d570b900017b7281';
        side: 'buy' | 'sell';
        size: 102;
        price: '57.75';
        takerOrderId: '137974138051522560';
        takerUserId: '61945720862a310001d6581e';
        makerOrderId: '137974082376310784';
        tradeId: '1694749771273';
        ts: 1705708799996000000;
    };
};
type LocalDepthInfo = {
    bufferedUpdates: CircularBuffer<KucoinFuturesLevel2UpdateMessage>;
    snapshotProcessed?: boolean;
    lastUpdateId?: number;
    validatedFirstUpdate?: boolean;
};
type KucoinFuturesLevel2SnapshotMessage = {
    type: 'message';
    generated: true;
    topic: '/contractMarket/level2Snapshot:C98USDTM';
    subject: 'level2Snapshot';
    code: '200000';
    data: {
        sequence: 1694868048360;
        symbol: 'C98USDTM';
        bids: [number, number][];
        asks: [number, number][];
        ts: 1705881597161000000;
    };
};
type KucoinFuturesLevel2UpdateMessage = {
    topic: '/contractMarket/level2:C98USDTM';
    type: 'message';
    subject: 'level2';
    sn: 1694868048361;
    data: {
        sequence: 1694868048361;
        change: '0.2353,buy,146';
        timestamp: 1705881600096;
    };
};
type KucoinFuturesTickerMessage = {
    topic: '/contractMarket/tickerV2:BCHUSDTM';
    type: 'message';
    subject: 'tickerV2';
    sn: 1695158749093;
    data: {
        symbol: 'BCHUSDTM';
        sequence: 1695158749093;
        bestBidSize: 480;
        bestBidPrice: '236.76';
        bestAskPrice: '236.77';
        bestAskSize: 126;
        ts: 1705708800078000000;
    };
};
type KucoinFuturesInstrumentMessage = {
    topic: '/contract/instrument:ENSUSDTM';
    type: 'message';
    subject: 'funding.rate';
    data: {
        granularity: 60000;
        fundingRate: 0.000053;
        timestamp: 1705708800000;
    };
} | {
    topic: '/contract/instrument:XAIUSDTM';
    type: 'message';
    subject: 'mark.index.price';
    data: {
        markPrice: 0.80694;
        indexPrice: 0.80695;
        granularity: 1000;
        timestamp: 1705881600000;
    };
} | {
    topic: '/contract/instrument:BAKEUSDTM';
    type: 'message';
    subject: 'funding.rate';
    data: {
        granularity: 28800000;
        fundingRate: 0.000105;
        timestamp: 1705982400000;
    };
} | {
    topic: '/contract/details:XBTUSDTM';
    type: 'message';
    subject: 'contractDetails';
    generated: true;
    data: {
        symbol: 'XBTUSDTM';
        rootSymbol: 'USDT';
        type: 'FFWCSX';
        firstOpenDate: 1585555200000;
        baseCurrency: 'XBT';
        quoteCurrency: 'USDT';
        settleCurrency: 'USDT';
        maxOrderQty: 1000000;
        maxPrice: 1000000.0;
        lotSize: 1;
        tickSize: 0.1;
        indexPriceTickSize: 0.01;
        multiplier: 0.001;
        initialMargin: 0.008;
        maintainMargin: 0.004;
        maxRiskLimit: 25000;
        minRiskLimit: 25000;
        riskStep: 12500;
        makerFeeRate: 2.0e-4;
        takerFeeRate: 6.0e-4;
        takerFixFee: 0.0;
        makerFixFee: 0.0;
        isDeleverage: true;
        isQuanto: true;
        isInverse: false;
        markMethod: 'FairPrice';
        fairMethod: 'FundingRate';
        fundingBaseSymbol: '.XBTINT8H';
        fundingQuoteSymbol: '.USDTINT8H';
        fundingRateSymbol: '.XBTUSDTMFPI8H';
        indexSymbol: '.KXBTUSDT';
        settlementSymbol: '';
        status: 'Open';
        fundingFeeRate: 3.8e-5;
        predictedFundingFeeRate: 9.6e-5;
        fundingRateGranularity: 28800000;
        openInterest: '9295921';
        turnoverOf24h: 5.94135187191124e8;
        volumeOf24h: 15131.243;
        markPrice: 39995.94;
        indexPrice: 39999.2;
        lastTradePrice: 39996.6;
        nextFundingRateTime: 10561278;
        maxLeverage: 125;
        sourceExchanges: ['okex', 'binance', 'kucoin', 'bybit', 'bitget', 'bitmart', 'gateio'];
        premiumsSymbol1M: '.XBTUSDTMPI';
        premiumsSymbol8H: '.XBTUSDTMPI8H';
        fundingBaseSymbol1M: '.XBTINT';
        fundingQuoteSymbol1M: '.USDTINT';
        lowPrice: 38560.0;
        highPrice: 40253.0;
        priceChgPct: 0.0132;
        priceChg: 523.4;
    };
};
export {};
//# sourceMappingURL=kucoinfutures.d.ts.map