import { Connection, Keypair } from "@solana/web3.js"; import { PythPrice } from "../pyth/types.js"; import { PoolType } from "../types.js"; /** * Configuration for MarketWatcher */ export interface MarketWatcherConfig { /** Solana RPC connection */ connection: Connection; /** Signer keypair for transactions */ signer: Keypair; /** Week number of the market to watch */ weekNumber: number; /** Hermes API URL (default: https://hermes.pyth.network) */ hermesUrl?: string; /** Price check interval in ms (default: 2000) */ priceCheckInterval?: number; /** Settlement check interval in ms (default: 10000) */ settlementCheckInterval?: number; /** Enable verbose logging */ verbose?: boolean; } /** * Current status of MarketWatcher */ export interface WatcherStatus { /** Week number being watched */ weekNumber: number; /** Whether the watcher is running */ isRunning: boolean; /** Current high pool outcome */ currentHighOutcome: number; /** Current low pool outcome */ currentLowOutcome: number; /** Market end timestamp (unix seconds) */ marketEndTimestamp: number; /** Whether high pool is settled */ highPoolSettled: boolean; /** Whether low pool is settled */ lowPoolSettled: boolean; /** Last price update */ lastPrice: PythPrice | null; /** Strike prices in cents */ strikes: [number, number, number]; } /** * Event emitted when outcome changes */ export interface OutcomeChangeEvent { /** Pool type that changed */ poolType: PoolType; /** New outcome value */ outcome: number; /** Previous outcome value */ previousOutcome: number; /** Transaction signature */ signature: string; /** Price that triggered the change */ priceInCents: number; } /** * Event emitted when market is settled */ export interface SettledEvent { /** Week number */ weekNumber: number; /** Pool type that was settled */ poolType: PoolType; /** Final outcome */ finalOutcome: number; /** Transaction signature */ signature: string; } /** * Event emitted on error */ export interface WatcherError { /** Error message */ message: string; /** Original error */ error: Error; /** Context where error occurred */ context: "price" | "markExtreme" | "settle" | "fetch"; } //# sourceMappingURL=types.d.ts.map