import { BookChange, BookTicker, DerivativeTicker, Exchange, Liquidation, Trade } from '../types.ts';
import { Mapper } from './mapper.ts';
export declare class BitgetTradesMapper implements Mapper<'bitget' | 'bitget-futures', Trade> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: BitgetTradeMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "trade";
        readonly symbols: string[] | undefined;
    }[];
    map(message: BitgetTradeMessage, localTimestamp: Date): IterableIterator<Trade>;
}
export declare class BitgetBookChangeMapper implements Mapper<'bitget' | 'bitget-futures', BookChange> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: BitgetOrderbookMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "books15";
        readonly symbols: string[] | undefined;
    }[];
    map(message: BitgetOrderbookMessage, localTimestamp: Date): IterableIterator<BookChange>;
}
export declare class BitgetBookTickerMapper implements Mapper<'bitget' | 'bitget-futures', BookTicker> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: BitgetBBoMessage): boolean;
    getFilters(symbols?: string[]): {
        channel: "books1";
        symbols: string[] | undefined;
    }[];
    map(message: BitgetBBoMessage, localTimestamp: Date): IterableIterator<BookTicker>;
}
export declare class BitgetDerivativeTickerMapper implements Mapper<'bitget-futures', DerivativeTicker> {
    private readonly pendingTickerInfoHelper;
    canHandle(message: BitgetTickerMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "ticker";
        readonly symbols: string[] | undefined;
    }[];
    map(message: BitgetTickerMessage, localTimestamp: Date): IterableIterator<DerivativeTicker>;
}
export declare class BitgetV3TradesMapper implements Mapper<'bitget' | 'bitget-futures', Trade> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: BitgetV3TradeMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "publicTrade";
        readonly symbols: string[] | undefined;
    }[];
    map(message: BitgetV3TradeMessage, localTimestamp: Date): IterableIterator<Trade>;
}
export declare class BitgetV3BookChangeMapper implements Mapper<'bitget' | 'bitget-futures', BookChange> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: BitgetV3OrderbookMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "books";
        readonly symbols: string[] | undefined;
    }[];
    map(message: BitgetV3OrderbookMessage, localTimestamp: Date): IterableIterator<BookChange>;
}
export declare class BitgetV3BookTickerMapper implements Mapper<'bitget' | 'bitget-futures', BookTicker> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: BitgetV3BBoMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "books1";
        readonly symbols: string[] | undefined;
    }[];
    map(message: BitgetV3BBoMessage, localTimestamp: Date): IterableIterator<BookTicker>;
}
export declare class BitgetV3DerivativeTickerMapper implements Mapper<'bitget-futures', DerivativeTicker> {
    private readonly pendingTickerInfoHelper;
    canHandle(message: BitgetV3TickerMessage): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "ticker";
        readonly symbols: string[] | undefined;
    }[];
    map(message: BitgetV3TickerMessage, localTimestamp: Date): IterableIterator<DerivativeTicker>;
}
export declare class BitgetV3LiquidationsMapper implements Mapper<'bitget-futures', Liquidation> {
    canHandle(message: BitgetV3LiquidationMessage): boolean;
    getFilters(): {
        readonly channel: "liquidation";
        readonly symbols: undefined;
    }[];
    map(message: BitgetV3LiquidationMessage, localTimestamp: Date): IterableIterator<Liquidation>;
}
type BitgetTradeMessage = {
    action: 'update';
    arg: {
        instType: 'SPOT';
        channel: 'trade';
        instId: 'OPUSDT';
    };
    data: [{
        ts: '1730332800983';
        price: '1.717';
        size: '56.16';
        side: 'buy';
        tradeId: '1235670816495050754';
    }];
    ts: 1730332800989;
};
type BitgetOrderbookMessage = {
    action: 'snapshot';
    arg: {
        instType: 'SPOT';
        channel: 'books15';
        instId: 'GEMSUSDT';
    };
    data: [
        {
            asks: [['0.22816', '155.25']];
            bids: [['0.22785', '73.41']];
            checksum: 0;
            ts: '1730963759993';
        }
    ];
    ts: 1730963759997;
};
type BitgetBBoMessage = {
    action: 'snapshot';
    arg: {
        instType: 'SPOT';
        channel: 'books1';
        instId: 'METISUSDT';
    };
    data: [{
        asks: [['44.90', '0.6927']];
        bids: [['44.82', '3.5344']];
        checksum: 0;
        ts: '1730332859988';
    }];
    ts: 1730332859989;
};
type BitgetTickerMessage = {
    action: 'snapshot';
    arg: {
        instType: 'COIN-FUTURES';
        channel: 'ticker';
        instId: 'BTCUSD';
    };
    data: [
        {
            instId: 'BTCUSD';
            lastPr: '72331.5';
            bidPr: '72331.5';
            askPr: '72331.8';
            bidSz: '7.296';
            askSz: '0.02';
            open24h: '72047.8';
            high24h: '72934.8';
            low24h: '71422.8';
            change24h: '-0.00561';
            fundingRate: '0.000116';
            nextFundingTime: string;
            markPrice: string;
            indexPrice: string;
            holdingAmount: string;
            baseVolume: '7543.376';
            quoteVolume: '544799876.924';
            openUtc: '72335.3';
            symbolType: '1';
            symbol: 'BTCUSD';
            deliveryPrice: '0';
            ts: '1730332823217';
        }
    ];
    ts: 1730332823220;
};
type BitgetV3TradeMessage = {
    action: 'snapshot' | 'update';
    arg: {
        instType: string;
        topic: 'publicTrade';
        symbol: string;
    };
    data: {
        i: string;
        p: string;
        v: string;
        S: 'buy' | 'sell';
        T: string;
        L: string;
        isRPI?: string;
    }[];
    ts: number;
};
type BitgetV3BookLevel = [string, string];
type BitgetV3OrderbookMessage = {
    action: 'snapshot' | 'update';
    arg: {
        instType: string;
        topic: 'books';
        symbol: string;
    };
    data: {
        a: BitgetV3BookLevel[];
        b: BitgetV3BookLevel[];
        checksum: number;
        seq: number;
        pseq: number;
        ts: string;
    }[];
    ts: number;
};
type BitgetV3BBoMessage = {
    action: 'snapshot';
    arg: {
        instType: string;
        topic: 'books1';
        symbol: string;
    };
    data: {
        a: BitgetV3BookLevel[];
        b: BitgetV3BookLevel[];
        checksum: number;
        seq: number;
        pseq: number;
        ts: string;
    }[];
    ts: number;
};
type BitgetV3TickerMessage = {
    action: 'snapshot' | 'update';
    arg: {
        instType: string;
        topic: 'ticker';
        symbol: string;
    };
    data: [
        {
            highPrice24h: string;
            lowPrice24h: string;
            openPrice24h: string;
            lastPrice: string;
            turnover24h: string;
            volume24h: string;
            bid1Price: string;
            ask1Price: string;
            bid1Size: string;
            ask1Size: string;
            price24hPcnt: string;
            indexPrice: string;
            markPrice: string;
            fundingRate: string;
            openInterest: string;
            deliveryTime: string;
            deliveryStartTime: string;
            deliveryStatus: string;
            nextFundingTime: string;
        }
    ];
    ts: number;
};
type BitgetV3LiquidationMessage = {
    action: 'update';
    arg: {
        instType: string;
        topic: 'liquidation';
    };
    data: {
        symbol: string;
        side: 'buy' | 'sell';
        price: string;
        amount: string;
        ts: string;
    }[];
    ts: number;
};
export {};
//# sourceMappingURL=bitget.d.ts.map