import { EventEmitter } from 'events';
import type { Trade, TradeRecommendation, TradeStats, SignalData, IndicatorValues, PriceData, UserSettings, ExternalData, MultiTimeframeData, EntryCheckResult } from '@bottrade/shared';
export declare class TradeTracker extends EventEmitter {
    private openTrades;
    private closedRecently;
    private consecutiveLosses;
    private recentResults;
    userId: number;
    init(): Promise<void>;
    getOpenTradesMap(): Map<string, Trade>;
    evaluateEntryFilters(symbol: string, signal: SignalData, priceData: PriceData, indicators: IndicatorValues, settings: UserSettings, multiTimeframe?: MultiTimeframeData, externalData?: ExternalData): EntryCheckResult;
    private getDynamicThreshold;
    private calcPositionSize;
    checkSignalForTrade(symbol: string, signal: SignalData, currentPrice: number, indicators?: IndicatorValues, priceData?: PriceData, settings?: UserSettings, multiTimeframe?: MultiTimeframeData, externalData?: ExternalData): Promise<void>;
    checkPriceForExits(symbol: string, currentPrice: number): Promise<void>;
    private shouldExitOnScore;
    private shouldExitOnTime;
    private calcPnl;
    generateRecommendation(trade: Trade, signal: SignalData, indicators: IndicatorValues, priceData: PriceData): TradeRecommendation;
    getTradeHistoryData(symbol?: string, limit?: number, offset?: number): Promise<{
        trades: Trade[];
        total: number;
    }>;
    getStats(symbol?: string): Promise<TradeStats>;
    private closeTradeWithResult;
}
//# sourceMappingURL=tradeTracker.d.ts.map