export interface CandleData {
    timestamp: number;
    open: number;
    high: number;
    low: number;
    close: number;
    volume: number;
}
export interface IndicatorValues {
    ma20: number;
    ma50: number;
    ma100: number;
    ma200: number;
    ema20: number;
    ema50: number;
    macd: {
        macd: number;
        signal: number;
        histogram: number;
        trend: 'bullish' | 'bearish' | 'neutral';
        divergence: 'bullish' | 'bearish' | null;
    };
    stochRsi: {
        k: number;
        d: number;
        zone: 'overbought' | 'oversold' | 'neutral';
        persistentOverbought: boolean;
        persistentOversold: boolean;
    };
    volume: {
        current: number;
        average: number;
        isSpike: boolean;
        candleDirection: 'green' | 'red';
    };
    rsi?: {
        value: number;
        zone: 'overbought' | 'oversold' | 'neutral';
        divergence: 'bullish' | 'bearish' | null;
    };
    bollingerBands?: {
        upper: number;
        middle: number;
        lower: number;
        width: number;
        percentB: number;
        squeeze: boolean;
    };
    atr?: {
        value: number;
        percent: number;
    };
    adx?: {
        value: number;
        plusDI: number;
        minusDI: number;
        trending: boolean;
    };
    vwap?: {
        value: number;
        priceAbove: boolean;
    };
    williamsR?: {
        value: number;
        zone: 'overbought' | 'oversold' | 'neutral';
    };
    cci?: {
        value: number;
        zone: 'overbought' | 'oversold' | 'neutral';
    };
    mfi?: {
        value: number;
        zone: 'overbought' | 'oversold' | 'neutral';
    };
    obv?: {
        value: number;
        trend: 'rising' | 'falling' | 'flat';
    };
    parabolicSar?: {
        value: number;
        trend: 'bullish' | 'bearish';
    };
    smartMoney?: SmartMoneyData;
}
export interface FVG {
    type: 'bullish' | 'bearish';
    top: number;
    bottom: number;
    timestamp: number;
    filled: boolean;
}
export interface OrderBlock {
    type: 'bullish' | 'bearish';
    high: number;
    low: number;
    timestamp: number;
    strength: number;
}
export interface StructureBreak {
    type: 'BOS' | 'CHoCH';
    direction: 'bullish' | 'bearish';
    level: number;
    timestamp: number;
}
export interface CandlePattern {
    name: string;
    type: 'bullish' | 'bearish' | 'neutral';
    significance: 'strong' | 'moderate' | 'weak';
    timestamp: number;
}
export interface SRZone {
    level: number;
    type: 'support' | 'resistance';
    touches: number;
    strength: 'strong' | 'moderate' | 'weak';
}
export interface SmartMoneyData {
    fvgs: FVG[];
    orderBlocks: OrderBlock[];
    structureBreaks: StructureBreak[];
    candlePatterns: CandlePattern[];
    srZones: SRZone[];
    liquiditySweep: {
        detected: boolean;
        direction: 'bullish' | 'bearish' | null;
        level: number | null;
    };
    trend: 'bullish' | 'bearish' | 'ranging';
}
export interface ExternalData {
    openInterest?: {
        value: number;
        change: number;
        trend: 'rising' | 'falling' | 'stable';
    };
    longShortRatio?: {
        ratio: number;
        longPercent: number;
        shortPercent: number;
        crowded: 'long' | 'short' | 'neutral';
    };
    fearGreed?: {
        value: number;
        label: string;
    };
}
export interface IndicatorToggles {
    ma: boolean;
    ema: boolean;
    macd: boolean;
    stochRsi: boolean;
    volume: boolean;
    rsi: boolean;
    bollingerBands: boolean;
    atr: boolean;
    adx: boolean;
    vwap: boolean;
    williamsR?: boolean;
    cci?: boolean;
    mfi?: boolean;
    obv?: boolean;
    parabolicSar?: boolean;
    openInterest: boolean;
    longShortRatio: boolean;
    fearGreed: boolean;
}
export interface PriceData {
    symbol: string;
    price: number;
    markPrice: number;
    change24h: number;
    volume24h: number;
    fundingRate: number;
    fundingCountdown: string;
}
export interface RiskManagement {
    entry: number;
    stopLoss: number;
    takeProfit: number;
    stopLossPercent: number;
    takeProfitPercent: number;
    positionSize: number;
    margin: number;
    riskRewardRatio: number;
    leverage: number;
}
export interface Alert {
    type: 'direction-change' | 'funding-extreme' | 'stochrsi-extreme' | 'full-alignment';
    symbol: string;
    message: string;
    severity: 'info' | 'warning' | 'critical';
    timestamp: number;
}
export interface SignalData {
    direction: 'LONG' | 'SHORT' | 'NEUTRO';
    confluenceScore: number;
    confidence: 'normal' | 'high';
    alerts: Alert[];
    riskManagement: RiskManagement | null;
    criticalDecision: string;
    actionPoints: string[];
    entryTrigger?: string;
    reversalTrigger?: string;
    overrides: string[];
}
export interface TimeframeAnalysis {
    interval: '15m' | '1h' | '4h';
    direction: 'LONG' | 'SHORT' | 'NEUTRO';
    score: number;
    trend: string;
    keyLevels: {
        ma20: number;
        ma50: number;
        ma200: number;
    };
}
export interface MultiTimeframeData {
    '15m': TimeframeAnalysis;
    '1h': TimeframeAnalysis | null;
    '4h': TimeframeAnalysis | null;
    alignment: 'aligned' | 'conflicting' | 'partial';
    summary: string;
}
export interface PairAnalysis {
    symbol: string;
    candles: CandleData[];
    indicators: IndicatorValues;
    price: PriceData;
    signal: SignalData;
    lastUpdate: number;
    multiTimeframe?: MultiTimeframeData;
    externalData?: ExternalData;
    entryCheck?: EntryCheckResult;
    btcCorrelation?: {
        btcDirection: 'LONG' | 'SHORT' | 'NEUTRO';
        btcScore: number;
        aligned: boolean;
        warning: string | null;
    };
}
export interface CustomAlert {
    id: string;
    symbol: string;
    condition: 'price_above' | 'price_below' | 'score_above' | 'score_below' | 'funding_above' | 'funding_below';
    value: number;
    message: string;
    triggered: boolean;
    createdAt: string;
}
export interface AutoTradeConfig {
    enabled: boolean;
    mode: 'semi' | 'auto';
    maxOpenTrades: number;
    maxDailyTrades: number;
    allowedPairs: string[];
}
export interface OrderRequest {
    symbol: string;
    side: 'BUY' | 'SELL';
    type: 'MARKET';
    quantity: number;
    stopLoss: number;
    takeProfit: number;
}
export interface OrderResult {
    success: boolean;
    orderId?: string;
    symbol: string;
    side: string;
    price?: number;
    quantity?: number;
    error?: string;
    timestamp: number;
}
export interface WebhookConfig {
    url: string;
    type: 'discord' | 'slack' | 'custom';
    events: string[];
    active: boolean;
}
export type UserMode = 'simple' | 'trader' | 'pro';
export interface RiskConfig {
    slMode: 'auto' | 'atr' | 'fixed';
    slFixedPercent: number;
    atrMultiplier: number;
    tpMode: 'rr' | 'fixed';
    tpFixedPercent: number;
    rrRatio: number;
    useSmartMoneySR: boolean;
    minSlPercent: number;
    maxSlPercent: number;
}
export interface UserSettings {
    userMode: UserMode;
    baseCapital: number;
    leverage: number;
    fundingThreshold: number;
    stochRsiHighThreshold: number;
    stochRsiLowThreshold: number;
    soundAlerts: boolean;
    desktopNotifications: boolean;
    pairs: string[];
    favorites: string[];
    customAlerts?: CustomAlert[];
    telegramBotToken?: string;
    telegramChatId?: string;
    binanceApiKey?: string;
    binanceApiSecret?: string;
    autoTrade?: AutoTradeConfig;
    indicatorToggles?: IndicatorToggles;
    webhooks?: WebhookConfig[];
    scoreConfig?: {
        longThreshold?: number;
        shortThreshold?: number;
        highConfidenceLong?: number;
        highConfidenceShort?: number;
        weights?: {
            structure?: number;
            macd?: number;
            stochRsi?: number;
            volume?: number;
            funding?: number;
            emaAlignment?: number;
        };
    };
    riskConfig?: RiskConfig;
    indicatorPeriods?: {
        rsiPeriod?: number;
        stochRsiPeriod?: number;
        stochRsiK?: number;
        stochRsiD?: number;
        macdFast?: number;
        macdSlow?: number;
        macdSignal?: number;
        bollingerPeriod?: number;
        bollingerStdDev?: number;
        atrPeriod?: number;
        adxPeriod?: number;
        cciPeriod?: number;
        mfiPeriod?: number;
        williamsRPeriod?: number;
    };
}
export interface HeatScore {
    score: number;
    label: 'QUENTE' | 'MORNO' | 'FRIO';
    reasons: string[];
    momentum: number;
    fundingPressure: number;
    volumeRank: number;
}
export interface BasicPairData {
    symbol: string;
    price: number;
    change24h: number;
    volume24h: number;
    fundingRate: number;
    markPrice: number;
    heatScore?: HeatScore;
    confluenceScore?: number;
    signalDirection?: 'LONG' | 'SHORT' | 'NEUTRO';
}
export interface SignalRecord {
    id: number;
    symbol: string;
    direction: 'LONG' | 'SHORT' | 'NEUTRO';
    confluenceScore: number;
    confidence: 'normal' | 'high';
    entryPrice: number;
    stopLoss: number | null;
    takeProfit: number | null;
    riskRewardRatio: number | null;
    fundingRate: number | null;
    criticalDecision: string | null;
    actionPoints: string[];
    overrides: string[];
    createdAt: string;
}
export interface Trade {
    id?: number;
    symbol: string;
    direction: 'LONG' | 'SHORT';
    entryPrice: number;
    stopLoss: number;
    takeProfit: number;
    exitPrice: number | null;
    result: 'WIN' | 'LOSS' | null;
    exitReason?: 'TP' | 'SL' | 'SCORE_EXIT' | 'TIME_STOP' | 'TRAILING_SL';
    pnlPercent: number | null;
    confluenceScore: number;
    status: 'OPEN' | 'CLOSED';
    openedAt: string;
    closedAt: string | null;
    partialTpPrice?: number | null;
    partialTpPnl?: number | null;
    partialTpAt?: string | null;
    currentStopLoss?: number;
    partialClosed?: boolean;
    candleCount?: number;
    peakPnl?: number;
}
export interface EntryFilter {
    name: string;
    passed: boolean;
    detail: string;
}
export interface EntryCheckResult {
    allowed: boolean;
    filters: EntryFilter[];
    passedCount: number;
    totalCount: number;
}
export interface TradeRecommendation {
    type: 'HOLD' | 'PARTIAL_50' | 'PARTIAL_75' | 'CLOSE_100' | 'MOVE_SL';
    message: string;
    reasons: string[];
    unrealizedPnl: number;
    suggestedAction: string;
    newStopLoss?: number;
}
export interface TradeStats {
    symbol: string | null;
    totalTrades: number;
    wins: number;
    losses: number;
    winRate: number;
    avgWinPnl: number;
    avgLossPnl: number;
    bestTrade: number;
    worstTrade: number;
}
export interface PerformanceData {
    equityCurve: {
        timestamp: string;
        equity: number;
        trade: {
            symbol: string;
            direction: string;
            pnlPercent: number;
        };
    }[];
    bySymbol: {
        symbol: string;
        trades: number;
        wins: number;
        losses: number;
        winRate: number;
        pnl: number;
    }[];
    byDirection: {
        direction: string;
        trades: number;
        wins: number;
        losses: number;
        winRate: number;
        pnl: number;
    }[];
    byPeriod: {
        period: string;
        trades: number;
        wins: number;
        pnl: number;
    }[];
    maxDrawdown: number;
    bestDay: {
        date: string;
        pnl: number;
    };
    worstDay: {
        date: string;
        pnl: number;
    };
    totalPnl: number;
    winRate: number;
    totalTrades: number;
    profitFactor: number;
    recentTrades: Trade[];
}
export interface BacktestParams {
    symbols: string[];
    period: '7d' | '30d' | '90d';
    scoreThreshold: number;
    leverage: number;
    baseCapital: number;
}
export interface BacktestTrade {
    symbol: string;
    direction: 'LONG' | 'SHORT';
    entryPrice: number;
    exitPrice: number;
    stopLoss: number;
    takeProfit: number;
    result: 'WIN' | 'LOSS';
    pnlPercent: number;
    pnlValue: number;
    score: number;
    entryTime: number;
    exitTime: number;
}
export type PlanType = 'free' | 'pro' | 'trader';
export interface PlanLimits {
    maxFavorites: number;
    maxBacktestsPerDay: number;
    multiTimeframe: boolean;
    paperTrading: boolean;
    backtest: boolean;
    autoTrade: boolean;
    executeOrders: boolean;
    telegramAlerts: boolean;
    customAlerts: boolean;
    allIndicators: boolean;
    exportData: boolean;
    apiAccess: boolean;
}
export declare const PLAN_LIMITS: Record<PlanType, PlanLimits>;
export interface BacktestResult {
    params: BacktestParams;
    trades: BacktestTrade[];
    stats: {
        totalTrades: number;
        wins: number;
        losses: number;
        winRate: number;
        totalPnlPercent: number;
        totalPnlValue: number;
        avgWinPnl: number;
        avgLossPnl: number;
        bestTrade: number;
        worstTrade: number;
        maxDrawdown: number;
        profitFactor: number;
        sharpeRatio: number;
    };
    equityCurve: {
        timestamp: number;
        equity: number;
    }[];
    perSymbol: Record<string, {
        trades: number;
        winRate: number;
        pnl: number;
    }>;
}
//# sourceMappingURL=types.d.ts.map