import { BookChange, OptionSummary, Trade } from '../types';
import { Mapper } from './mapper';
export declare class BinanceOptionsTradesMapper implements Mapper<'binance-options', Trade> {
    private readonly _lastTradeId;
    canHandle(message: BinanceResponse<any>): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "TRADE";
        readonly symbols: string[] | undefined;
    }[];
    map(binanceTradeResponse: BinanceResponse<BinanceOptionsTradeData>, localTimestamp: Date): Generator<Trade, void, unknown>;
}
export declare class BinanceOptionsBookChangeMapper implements Mapper<'binance-options', BookChange> {
    canHandle(message: BinanceResponse<any>): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "DEPTH100";
        readonly symbols: string[] | undefined;
    }[];
    map(message: BinanceResponse<BinanceOptionsDepthData>, localTimestamp: Date): Generator<BookChange, void, unknown>;
    protected mapBookLevel(level: BinanceBookLevel): {
        price: number;
        amount: number;
    };
}
export declare class BinanceOptionSummaryMapper implements Mapper<'binance-options', OptionSummary> {
    private readonly _indexPrices;
    canHandle(message: BinanceResponse<any>): boolean;
    getFilters(symbols?: string[]): ({
        readonly channel: "TICKER";
        readonly symbols: string[] | undefined;
    } | {
        readonly channel: "INDEX";
        readonly symbols: string[] | undefined;
    })[];
    map(message: BinanceResponse<BinanceOptionsTickerData | BinanceOptionsIndexData>, localTimestamp: Date): Generator<OptionSummary, void, unknown>;
}
type BinanceResponse<T> = {
    stream: string;
    data: T;
};
type BinanceOptionsTradeData = {
    e: 'trade';
    E: number;
    s: string;
    t: {
        t: string;
        p: string;
        q: string;
        T: number;
        s: '-1' | '1';
    }[];
};
type BinanceOptionsDepthData = {
    e: 'depth';
    E: number;
    s: string;
    b: BinanceBookLevel[];
    a: BinanceBookLevel[];
};
type BinanceOptionsTickerData = {
    e: 'ticker';
    E: 1591677962357;
    s: 'BTC-200630-9000-P';
    o: '1000';
    h: '1000';
    l: '1000';
    c: '1000';
    V: '2';
    A: '0';
    p: '0';
    Q: '2000';
    F: 1;
    L: 1;
    n: 1;
    b: '0';
    a: '0';
    d: '0';
    t: '0';
    g: '0';
    v: '0';
    bo: '3.1';
    ao: '90.36';
    mp: '6.96';
};
type BinanceOptionsIndexData = {
    e: 'index';
    E: 1614556800182;
    s: 'BTCUSDT';
    p: '45160.127864';
};
type BinanceBookLevel = [string, string];
export {};
//# sourceMappingURL=binanceoptions.d.ts.map