import { IBApiNext, Contract, BarSizeSetting, WhatToShow, ContractDetails } from '@stoqey/ib';
import { MarketData, TickByTickAllLast } from '../interfaces';
export interface ContractInstrument extends Contract, ContractDetails {
    contract: Contract;
}
export declare class MarketDataManager {
    ib: IBApiNext;
    marketData: Record<string, {
        [date: string]: MarketData;
    }>;
    private GetHistoricalDataUpdates;
    private static _instance;
    static get Instance(): MarketDataManager;
    getSymbolKey: (contract: Contract) => string;
    historicalData: (contract: Contract, startDate: Date, endDate: Date, interval: string) => Promise<MarketData[]>;
    getQuote: (contract: Contract, date: Date) => Promise<MarketData>;
    removeHistoricalDataUpdates: (contract: Contract) => void;
    getHistoricalDataUpdates: (contract: Contract, barSizeSetting: BarSizeSetting, whatToShow: WhatToShow) => Promise<void>;
    getHistoricalData: (contract: Contract, endDateTime: string | undefined, durationStr: string, barSizeSetting: BarSizeSetting, whatToShow: WhatToShow, useRTH?: boolean) => Promise<MarketData[]>;
    getHistoricalTicksLast: (contract: Contract, startDate: Date, endDate: Date, numberOfTicks?: number, useRTH?: boolean) => Promise<TickByTickAllLast[]>;
    getContract: (contract: Partial<Contract | any>) => Promise<ContractInstrument>;
    searchContracts: (contract: Partial<Contract>) => Promise<ContractInstrument[]>;
    init: () => void;
    private constructor();
}
export default MarketDataManager;
