import { BookChange, BookTicker, DerivativeTicker, Trade } from '../types.ts';
import { Mapper } from './mapper.ts';
export declare class HyperliquidTradesMapper implements Mapper<'hyperliquid', Trade> {
    private readonly _seenSymbols;
    canHandle(message: HyperliquidTradeMessage): boolean;
    getFilters(symbols?: string[]): {
        channel: string;
        symbols: string[] | undefined;
    }[];
    map(message: HyperliquidTradeMessage, localTimestamp: Date): IterableIterator<Trade>;
}
export declare class HyperliquidBookChangeMapper implements Mapper<'hyperliquid', BookChange> {
    canHandle(message: HyperliquidWsBookMessage): boolean;
    getFilters(symbols?: string[]): {
        channel: string;
        symbols: string[] | undefined;
    }[];
    map(message: HyperliquidWsBookMessage, localTimestamp: Date): IterableIterator<BookChange>;
}
export declare class HyperliquidBookTickerMapper implements Mapper<'hyperliquid', BookTicker> {
    canHandle(message: HyperliquidBboMessage): boolean;
    getFilters(symbols?: string[]): {
        channel: string;
        symbols: string[] | undefined;
    }[];
    map(message: HyperliquidBboMessage, localTimestamp: Date): IterableIterator<BookTicker>;
}
export declare class HyperliquidDerivativeTickerMapper implements Mapper<'hyperliquid', DerivativeTicker> {
    private readonly pendingTickerInfoHelper;
    canHandle(message: HyperliquidContextMessage): boolean;
    getFilters(symbols?: string[]): {
        channel: string;
        symbols: string[] | undefined;
    }[];
    map(message: HyperliquidContextMessage, localTimestamp: Date): IterableIterator<DerivativeTicker>;
}
type HyperliquidTradeMessage = {
    channel: 'trades';
    data: [
        {
            coin: string;
            side: string;
            px: string;
            sz: string;
            hash: string;
            time: number;
            tid: number;
        }
    ];
};
type HyperliquidWsBookMessage = {
    channel: 'l2Book';
    data: {
        coin: 'ATOM';
        time: 1730160007687;
        levels: [HyperliquidWsLevel[], HyperliquidWsLevel[]];
    };
};
type HyperliquidWsLevel = {
    px: string;
    sz: string;
    n: number;
};
type HyperliquidBboMessage = {
    channel: 'bbo';
    data: {
        coin: string;
        time: number;
        bbo: [HyperliquidWsLevel, HyperliquidWsLevel];
    };
};
type HyperliquidContextMessage = {
    channel: 'activeAssetCtx';
    data: {
        coin: 'RENDER';
        ctx: {
            funding: '0.0000125';
            openInterest: '231067.2';
            prevDayPx: '4.8744';
            dayNtlVlm: '387891.57092';
            premium: '0.0';
            oraclePx: '4.9185';
            markPx: '4.919';
            midPx: '4.9183';
            impactPxs: ['4.9176', '4.9191'];
        };
    };
};
export {};
//# sourceMappingURL=hyperliquid.d.ts.map