import { BookChange, DerivativeTicker, Exchange, Trade, BookTicker } from '../types.ts';
import { Mapper } from './mapper.ts';
export declare class GateIOFuturesTradesMapper implements Mapper<'gate-io-futures', Trade> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: any): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "trades";
        readonly symbols: string[] | undefined;
    }[];
    map(tradesMessage: GateIOFuturesTrades, localTimestamp: Date): IterableIterator<Trade>;
}
export declare class GateIOFuturesBookChangeMapper implements Mapper<'gate-io-futures', BookChange> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: GateIOFuturesOrderBookSnapshot | GateIOFuturesOrderBookUpdate): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "order_book";
        readonly symbols: string[] | undefined;
    }[];
    map(depthMessage: GateIOFuturesOrderBookSnapshot | GateIOFuturesOrderBookUpdate, localTimestamp: Date): IterableIterator<BookChange>;
}
export declare class GateIOFuturesDerivativeTickerMapper implements Mapper<'gate-io-futures', DerivativeTicker> {
    private readonly pendingTickerInfoHelper;
    canHandle(message: GateIOFuturesTicker): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "tickers";
        readonly symbols: string[] | undefined;
    }[];
    map(message: GateIOFuturesTicker, localTimestamp: Date): IterableIterator<DerivativeTicker>;
}
export declare class GateIOFuturesBookTickerMapper implements Mapper<'gate-io-futures', BookTicker> {
    private readonly _exchange;
    constructor(_exchange: Exchange);
    canHandle(message: any): boolean;
    getFilters(symbols?: string[]): {
        readonly channel: "book_ticker";
        readonly symbols: string[] | undefined;
    }[];
    map(gateIoFuturesBookTickerMessage: GateIOFuturesBookTicker, localTimestamp: Date): IterableIterator<BookTicker>;
}
type GateIOFuturesTrade = {
    size: number | string;
    id: number;
    create_time: number;
    create_time_ms?: number;
    price: string;
    contract: string;
};
type GateIOFuturesTrades = {
    time: number;
    channel: 'futures.trades';
    event: 'update';
    result: GateIOFuturesTrade[];
};
type GateIOFuturesSnapshotLevel = {
    p: string;
    s: number | string;
};
type GateIOFuturesOrderBookSnapshot = {
    time: number;
    channel: 'futures.order_book';
    event: 'all';
    time_ms: number | undefined;
    result: {
        t?: number;
        contract: string;
        asks: GateIOFuturesSnapshotLevel[];
        bids: GateIOFuturesSnapshotLevel[];
    };
};
type GateIOFuturesOrderBookUpdate = {
    time: number;
    channel: 'futures.order_book';
    event: 'update';
    result: {
        t?: number;
        p: string;
        s: number | string;
        c: string;
    }[];
};
type GateIOFuturesTicker = {
    time: number;
    time_ms?: number;
    channel: 'futures.tickers';
    event: 'update';
    result: [
        {
            contract: string;
            last: string;
            funding_rate: string;
            mark_price: string;
            index_price: string;
            funding_rate_indicative: string;
            total_size: string | undefined;
        }
    ] | {
        contract: string;
        last: string;
        funding_rate: string;
        mark_price: string;
        index_price: string;
        funding_rate_indicative: string;
        total_size: string | undefined;
    };
};
type GateIOFuturesBookTicker = {
    id: null;
    time: 1648771200;
    channel: 'futures.book_ticker';
    event: 'update';
    error: null;
    result: {
        t: number;
        u: 3502782378;
        s: 'BTC_USD';
        b: string;
        B: number | string;
        a: string;
        A: number | string;
    };
};
export {};
//# sourceMappingURL=gateiofutures.d.ts.map