import { BookChange, DerivativeTicker, Liquidation, Trade } from '../types';
import { Mapper } from './mapper';
export declare class DydxV4TradesMapper implements Mapper<'dydx-v4', Trade> {
    canHandle(message: DyDxTrade): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "v4_trades";
        readonly symbols: string[] | undefined;
    }[];
    map(message: DyDxTrade, localTimestamp: Date): IterableIterator<Trade>;
}
export declare class DydxV4BookChangeMapper implements Mapper<'dydx-v4', BookChange> {
    canHandle(message: DyDxOrderbookSnapshot | DyDxOrderBookUpdate): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "v4_orderbook";
        readonly symbols: string[] | undefined;
    }[];
    map(message: DyDxOrderbookSnapshot | DyDxOrderBookUpdate, localTimestamp: Date): IterableIterator<BookChange>;
}
export declare class DydxV4DerivativeTickerMapper implements Mapper<'dydx-v4', DerivativeTicker> {
    private readonly pendingTickerInfoHelper;
    canHandle(message: DydxMarketsSnapshot | DyDxMarketsUpdate | DyDxTrade): boolean;
    getFilters(symbols?: string[]): ({
        readonly channel: "v4_markets";
        readonly symbols: string[];
    } | {
        readonly channel: "v4_trades";
        readonly symbols: string[] | undefined;
    })[];
    map(message: DydxMarketsSnapshot | DyDxMarketsUpdate | DyDxTrade, localTimestamp: Date): IterableIterator<DerivativeTicker>;
}
export declare class DydxV4LiquidationsMapper implements Mapper<'dydx-v4', Liquidation> {
    canHandle(message: DyDxTrade): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "v4_trades";
        readonly symbols: string[] | undefined;
    }[];
    map(message: DyDxTrade, localTimestamp: Date): IterableIterator<Liquidation>;
}
type DyDxTrade = {
    type: 'channel_data';
    connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9';
    message_id: 15897;
    id: 'BTC-USD';
    channel: 'v4_trades';
    version: '2.1.0';
    contents: {
        trades: [
            {
                id: '0165e6170000000200000002';
                size: '0.0001';
                price: '60392';
                side: 'BUY' | 'SELL';
                createdAt: '2024-08-23T00:00:57.627Z';
                type: 'LIMIT' | 'LIQUIDATED';
            }
        ];
    };
};
type DyDxOrderbookSnapshot = {
    type: 'subscribed';
    connection_id: '67838890-75de-4bf3-a638-d7bcdea5f245';
    message_id: 7;
    channel: 'v4_orderbook';
    id: 'GRT-USD';
    contents: {
        bids: [{
            price: '0.1547';
            size: '35520';
        }];
        asks: [{
            price: '0.155';
            size: '3220';
        }];
    };
};
type DyDxOrderBookUpdate = {
    type: 'channel_data';
    connection_id: '00908030-4a70-43aa-9263-8ccdf57b5d40';
    message_id: 10290;
    id: 'EOS-USD';
    channel: 'v4_orderbook';
    version: '1.0.0';
    contents: {
        bids: [['0.1003', '2017130']];
        asks: undefined | [['0.1003', '2017130']];
    };
};
type DydxMarketsSnapshot = {
    type: 'subscribed';
    connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9';
    message_id: 17;
    channel: 'v4_markets';
    contents: {
        markets: {
            [key: string]: DydxMarketsSnapshotContent;
        };
    };
};
type DydxMarketsSnapshotContent = {
    clobPairId: '0';
    ticker: 'BTC-USD';
    status: 'ACTIVE';
    oraclePrice: '60387.51779';
    priceChange24H: '-782.58326';
    volume24H: '247515340.0835';
    trades24H: 73556;
    nextFundingRate: '0.00001351666666666667';
    initialMarginFraction: '0.05';
    maintenanceMarginFraction: '0.03';
    openInterest: '648.2389';
    atomicResolution: -10;
    quantumConversionExponent: -9;
    tickSize: '1';
    stepSize: '0.0001';
    stepBaseQuantums: 1000000;
    subticksPerTick: 100000;
    marketType: 'CROSS';
    openInterestLowerCap: '0';
    openInterestUpperCap: '0';
    baseOpenInterest: '648.4278';
};
type DyDxMarketsUpdate = {
    type: 'channel_data';
    connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9';
    message_id: 15871;
    channel: 'v4_markets';
    version: '1.0.0';
    contents: {
        oraclePrices: undefined;
        trading: {
            'ETH-USD': DydxMarketTradeUpdate;
        };
    };
} | {
    type: 'channel_data';
    connection_id: '3a2e4c0c-7579-4bf6-a570-e0979418bbe9';
    message_id: 50;
    channel: 'v4_markets';
    version: '1.0.0';
    contents: {
        trading: undefined;
        oraclePrices: {
            'ZERO-USD': OraclePriceInfo;
        };
    };
};
type OraclePriceInfo = {
    oraclePrice: string;
    effectiveAt: string;
    effectiveAtHeight: string;
    marketId: number;
};
type DydxMarketTradeUpdate = {
    id?: string;
    clobPairId?: string;
    ticker?: string;
    marketId?: number;
    oraclePrice: undefined;
    baseAsset?: string;
    quoteAsset?: string;
    initialMarginFraction?: string;
    maintenanceMarginFraction?: string;
    basePositionSize?: string;
    incrementalPositionSize?: string;
    maxPositionSize?: string;
    openInterest?: string;
    quantumConversionExponent?: number;
    atomicResolution?: number;
    subticksPerTick?: number;
    stepBaseQuantums?: number;
    priceChange24H?: string;
    volume24H?: string;
    trades24H?: number;
    nextFundingRate?: string;
};
export {};
//# sourceMappingURL=dydxv4.d.ts.map