text: include '../types.pxi'
  
  from quantlib.handle cimport shared_ptr
  from quantlib.time._date cimport Date
  from quantlib.time._period cimport Period
  from quantlib.time._businessdayconvention cimport BusinessDayConvention
  from quantlib.indexes._swap_index cimport SwapIndex
  from quantlib.instruments._swaption cimport Swaption, Settlement
  from quantlib.instruments._vanillaswap cimport VanillaSwap
  from quantlib.pricingengines._pricing_engine cimport PricingEngine
  
  cdef extern from 'ql/instruments/makeswaption.hpp' namespace 'QuantLib':
      cdef cppclass MakeSwaption:
          MakeSwaption(const shared_ptr[SwapIndex]& swapIndex,
                       const Period& optionTenor,
                       Rate strike)# = Null<Rate>())
  
          MakeSwaption(const shared_ptr[SwapIndex]& swapIndex,
                       const Date& fixingDate,
                       Rate strike)# = Null<Rate>())
  
          Swaption operator()
  
          MakeSwaption& withSettlementType(Settlement.Type delivery)
          MakeSwaption& withOptionConvention(BusinessDayConvention bdc)
          MakeSwaption& withExerciseDate(const Date&)
          MakeSwaption& withUnderlyingType(const VanillaSwap.Type type)
          MakeSwaption& withNominal(Real n)
  
          MakeSwaption& withPricingEngine(
              const shared_ptr[PricingEngine]& engine)
  
      shared_ptr[Swaption] get "(boost::shared_ptr<QuantLib::Swaption>)" (MakeSwaption) except +
  