import Database from "better-sqlite3"; export interface WatchlistEntry { address: string; alias: string | null; roi: number; volume: number; pnl: number; trade_count: number; added_at?: string; last_checked?: string | null; } export interface TradeRecord { id?: number; trader_address: string; market_slug: string | null; condition_id: string | null; token_id: string | null; side: string; price: number; amount: number; original_amount: number | null; mode: "preview" | "live"; status: "simulated" | "executed" | "failed" | "resolved_win" | "resolved_loss"; pnl?: number; created_at?: string; resolved_at?: string | null; current_price?: number | null; exit_reason?: string | null; sl_price?: number | null; tp_price?: number | null; } export declare function addToWatchlist(db: Database.Database, entry: Omit): void; export declare function removeFromWatchlist(db: Database.Database, address: string): void; export declare function getWatchlist(db: Database.Database): WatchlistEntry[]; export declare function getWatchlistCount(db: Database.Database): number; export declare function updateLastChecked(db: Database.Database, address: string): void; export declare function recordTrade(db: Database.Database, trade: Omit): number; /** Atomically record a trade and update daily budget in a single transaction */ export declare function recordTradeWithBudget(db: Database.Database, trade: Omit, date: string, spendAmount: number, dailyLimit: number): number; export declare function getTradeHistory(db: Database.Database, opts: { limit?: number; trader?: string; status?: string; }): TradeRecord[]; export declare function hasExistingPosition(db: Database.Database, conditionId: string): boolean; export declare function getDailySpent(db: Database.Database, date: string): number; export declare function addDailySpent(db: Database.Database, date: string, amount: number, limitAmount: number): void; export declare function getDailyBudgetRemaining(db: Database.Database, date: string, dailyLimit: number): number; /** * Resolve today's effective daily budget limit. The dashboard can override the * caller's default by writing a positive `daily_budget.limit_amount` row for * today; otherwise the supplied fallback (env default or constructor value) * wins. Single source of truth for both BudgetManager and TradeExecutor so * every preview spend path records against the same limit. */ export declare function resolveDailyLimit(db: Database.Database, fallback: number): number; export declare function getTradeStats(db: Database.Database): { total: number; wins: number; losses: number; totalPnl: number; winRate: number; }; export declare function getConfig(db: Database.Database, key: string): string | null; export declare function setConfig(db: Database.Database, key: string, value: string): void; export declare function getOpenPositions(db: Database.Database): TradeRecord[]; export declare function updateTradeExit(db: Database.Database, tradeId: number, currentPrice: number, exitReason: string, pnl: number): void; export declare function getPositionsByStatus(db: Database.Database, status: "open" | "closed" | "all"): TradeRecord[]; export declare function setExitRules(db: Database.Database, tradeId: number, slPrice: number | null, tpPrice: number | null): boolean; export declare function getPositionsWithExitRules(db: Database.Database): TradeRecord[]; export interface WalletPortfolio { address: string; alias: string | null; openPositions: number; closedPositions: number; totalInvested: number; realizedPnl: number; winRate: number; } export declare function getPortfolioByWallet(db: Database.Database): WalletPortfolio[]; export interface MarketWatch { condition_id: string; token_id: string | null; title: string | null; slug: string | null; alert_below: number | null; alert_above: number | null; last_price: number | null; added_at?: string; } export declare function addMarketWatch(db: Database.Database, entry: Omit): void; export declare function removeMarketWatch(db: Database.Database, conditionId: string): void; export declare function getMarketWatchlist(db: Database.Database): MarketWatch[]; export declare function updateMarketWatchPrice(db: Database.Database, conditionId: string, price: number): void; /** Daily P&L history for charting — returns cumulative running total */ export declare function getDailyPnlHistory(db: Database.Database): { date: string; pnl: number; cumulative: number; }[]; //# sourceMappingURL=queries.d.ts.map