import type { TradeSide, EventStatus } from '../types/enums.js'; export interface TradeRow { tx_hash: string; log_index: number; block_number: number | null; timestamp: number; maker: string; taker: string; token_id: string; condition_id: string; market_title: string; market_slug: string; outcome: string; side: TradeSide; price: number; size: number; maker_amount: string; taker_amount: string; fee: number | null; source: TradeSource; raw_json: string | null; cached_at: number; } export interface SettlementRow { tx_hash: string; status: EventStatus; detected_at: number; block_number: number | null; taker_wallet: string; taker_token: string; taker_side: string; taker_price: number; taker_size: number; condition_id: string; market_title: string; market_slug: string; outcome: string; trade_count: number; raw_json: string; cached_at: number; } export interface BackfillStateRow { entity_type: EntityType; entity_id: string; label: string; status: BackfillStatus; last_offset: number; fetched: number; last_error: string | null; started_at: number; updated_at: number; } export interface WatchlistSnapshotRow { entity_type: EntityType; entity_id: string; label: string; backfill: boolean; added_at: number; } export type TradeSource = 'settlement' | 'trade_event' | 'backfill'; export type BackfillStatus = 'pending' | 'in_progress' | 'complete' | 'failed'; export type EntityType = 'wallet' | 'market' | 'token'; export interface CacheConfig { dbPath?: string; watchlistPath?: string; ttlSeconds?: number; /** Max requests per second for backfill. Default: 1 */ backfillRatePerSecond?: number; /** Max pages to fetch per entity during backfill. Default: 1 (500 trades). Set higher for deeper history. */ backfillPages?: number; /** Trades per backfill request. Default: 500. Max: 1000 (upstream cap). */ backfillPageSize?: number; purgeOnRemove?: boolean; onBackfillProgress?: (progress: BackfillProgress) => void; } export interface QueryOptions { limit?: number; offset?: number; since?: number; until?: number; side?: TradeSide; orderBy?: 'timestamp_asc' | 'timestamp_desc'; } export interface PositionSummary { wallet: string; token_id: string; condition_id: string; market_title: string; market_slug: string; outcome: string; size: number; avg_price: number; cur_price: number | null; current_value: number | null; initial_value: number | null; cash_pnl: number | null; percent_pnl: number | null; realized_pnl: number | null; total_bought: number | null; redeemable: boolean; end_date: string | null; trade_count: number | null; first_trade_at: number | null; last_trade_at: number | null; } export interface BackfillProgress { entity_type: EntityType; entity_id: string; label: string; status: BackfillStatus; fetched: number; offset: number; message?: string; } export interface CacheStats { trade_count: number; settlement_count: number; db_size_bytes: number; oldest_trade_at: number | null; newest_trade_at: number | null; backfill_entities: number; backfill_complete: number; backfill_pending: number; backfill_in_progress: number; backfill_failed: number; } export interface WatchlistFile { version: number; wallets?: WatchlistEntry[]; markets?: WatchlistEntry[]; tokens?: WatchlistEntry[]; settings?: WatchlistSettings; } export interface WatchlistEntry { address?: string; condition_id?: string; token_id?: string; label: string; backfill?: boolean; } export interface WatchlistSettings { ttl_days?: number; backfill_rate?: number; purge_on_remove?: boolean; } export interface StorageEstimate { estimated_trades: number; estimated_size_mb: number; ttl_days: number; wallet_count: number; market_count: number; token_count: number; } export interface TokenPnl { token_id: string; condition_id: string; market_title: string; outcome: string; realized_pnl: number; unrealized_pnl: number; remaining_size: number; avg_cost: number; cur_price: number | null; trades_analyzed: number; buys: number; sells: number; } export interface RealizedPnlResult { wallet: string; total_realized_pnl: number; total_unrealized_pnl: number; total_pnl: number; tokens: TokenPnl[]; trades_analyzed: number; /** 'full' if backfill complete for this wallet, 'partial' if not all trades were captured */ confidence: 'full' | 'partial'; } //# sourceMappingURL=types.d.ts.map