export interface RedemptionWatcherConfig { apiKey: string; baseUrl?: string; wsUrl?: string; compress?: boolean; autoReconnect?: boolean; /** Subscribe to wallet position_change events for live delta tracking. Default: true. */ trackPositionChanges?: boolean; /** Periodic REST refresh interval in ms. 0 = disabled. Default: 300000 (5 min). */ refreshInterval?: number; } export interface RedeemableAlert { wallet: string; conditionId: string; tokenId: string; outcome: string; winningOutcome: string; isWinner: boolean; size: number; estimatedPayoutUsd: number; marketTitle: string; marketSlug: string; marketImage?: string; resolvedPrice: number; payouts: number[]; blockNumber: number; timestamp: number; } export interface TrackedPosition { wallet: string; tokenId: string; conditionId: string; outcome: string; size: number; marketTitle: string; marketSlug: string; marketImage?: string; outcomes: string[]; tokenIds: string[]; negRisk?: boolean; } type WatcherHandler = T extends void ? () => void : (data: T) => void; export declare class RedemptionWatcher { private readonly client; private readonly ws; private readonly trackPositionChanges; private readonly refreshInterval; private readonly byCondition; private readonly byWallet; private oracleSub; private walletSub; private refreshTimer; private closed; private handlers; private alertQueue; private alertResolve; constructor(config: RedemptionWatcherConfig); /** Start watching. Fetches positions, subscribes to streams. */ start(wallets: string[]): Promise; /** Add wallets at runtime. Fetches their positions and updates subscriptions. */ addWallets(wallets: string[]): Promise; /** Remove wallets. Cleans up state and updates subscriptions. */ removeWallets(wallets: string[]): void; on(event: 'alert', handler: WatcherHandler): this; on(event: 'ready', handler: WatcherHandler): this; on(event: 'error', handler: WatcherHandler): this; off(event: 'alert' | 'ready' | 'error', handler: (...args: any[]) => void): this; /** Async iterator for consuming alerts sequentially. */ [Symbol.asyncIterator](): AsyncIterableIterator; /** All tracked wallet addresses. */ get wallets(): string[]; /** All tracked condition IDs. */ get conditions(): string[]; /** Get tracked positions for a specific wallet. */ positionsFor(wallet: string): TrackedPosition[]; /** Total number of tracked positions across all wallets. */ get size(): number; /** Close everything. */ close(): void; private fetchAndLoad; private loadPositions; private handleOracleEvent; private handlePositionChange; private emitAlert; private resubscribeWallets; } export {}; //# sourceMappingURL=redemption-watcher.d.ts.map