import { Pool } from 'mysql2/promise';
import type { SignalData, IndicatorValues, UserSettings, SignalRecord, Trade, TradeStats, PerformanceData } from '@bottrade/shared';
export declare let pool: Pool;
export declare const defaultSettings: UserSettings;
export declare function initDatabase(): Promise<void>;
export declare function saveSignal(userId: number, symbol: string, signal: SignalData, indicators: IndicatorValues): Promise<number | null>;
export declare function getUserSettings(userId: number): Promise<UserSettings>;
export declare function updateUserSettings(userId: number, partial: Partial<UserSettings>): Promise<UserSettings>;
/** @deprecated Use getUserSettings(userId) instead */
export declare function getSettings(): Promise<UserSettings>;
/** @deprecated Use updateUserSettings(userId, partial) instead */
export declare function updateSettings(partial: Partial<UserSettings>): Promise<UserSettings>;
export declare function getHistory(userId: number, symbol?: string, limit?: number, offset?: number): Promise<{
    signals: SignalRecord[];
    total: number;
}>;
export declare function flushBuffer(): Promise<void>;
export declare function insertTrade(userId: number, trade: Omit<Trade, 'id'>): Promise<number>;
export declare function closeTrade(userId: number, id: number, exitPrice: number, result: 'WIN' | 'LOSS', pnlPercent: number): Promise<void>;
export declare function updatePartialTp(userId: number, id: number, partialTpPrice: number, partialTpPnl: number): Promise<void>;
export declare function updateTradeRuntimeState(userId: number, tradeId: number, state: {
    currentStopLoss: number;
    partialClosed: boolean;
    candleCount: number;
    peakPnl: number;
}): Promise<void>;
export declare function getOpenTrades(userId: number): Promise<Trade[]>;
export declare function getTradeHistory(userId: number, symbol?: string, limit?: number, offset?: number): Promise<{
    trades: Trade[];
    total: number;
}>;
export declare function getTradeStats(userId: number, symbol?: string): Promise<TradeStats>;
export declare function getPerformanceData(userId: number, symbol?: string): Promise<PerformanceData>;
export declare function insertPaperTrade(userId: number, trade: Record<string, unknown>): Promise<number>;
export declare function closePaperTrade(userId: number, id: number, exitPrice: number, result: 'WIN' | 'LOSS', pnlPercent: number, exitReason: string): Promise<void>;
export declare function updatePaperPartialTp(userId: number, id: number, price: number, pnl: number): Promise<void>;
export declare function getOpenPaperTrades(userId: number): Promise<Trade[]>;
export declare function getPaperTradeHistory(userId: number, symbol?: string, limit?: number, offset?: number): Promise<{
    trades: Trade[];
    total: number;
}>;
export declare function getPaperTradeStats(userId: number, symbol?: string): Promise<TradeStats>;
export declare function blacklistTokenDB(tokenHash: string, expiresAt: Date): Promise<void>;
export declare function isTokenBlacklistedDB(tokenHash: string): Promise<boolean>;
export declare function cleanupExpiredTokens(): Promise<void>;
//# sourceMappingURL=database.d.ts.map