/**
 * Options Pricing Types
 * Types for options pricing and derivatives
 */

/**
 * Options pricing parameters
 */
export interface OptionParameters {
  /** Underlying asset price */
  spotPrice: number;
  /** Strike price */
  strikePrice: number;
  /** Time to expiration (in years) */
  timeToExpiry: number;
  /** Risk-free interest rate */
  riskFreeRate: number;
  /** Volatility */
  volatility: number;
  /** Dividend yield */
  dividendYield?: number;
  /** Option type */
  optionType: 'call' | 'put';
}

/**
 * Option pricing results
 */
export interface OptionPricing {
  /** Call option price */
  callPrice: number;
  /** Put option price */
  putPrice: number;
  /** Call intrinsic value */
  callIntrinsic: number;
  /** Put intrinsic value */
  putIntrinsic: number;
  /** Call time value */
  callTimeValue: number;
  /** Put time value */
  putTimeValue: number;
}

/**
 * Option Greeks calculation
 */
export interface GreeksCalculation {
  /** Delta - price sensitivity */
  delta: number;
  /** Gamma - delta sensitivity */
  gamma: number;
  /** Theta - time decay */
  theta: number;
  /** Vega - volatility sensitivity */
  vega: number;
  /** Rho - interest rate sensitivity */
  rho: number;
}
