/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.provider.description.forex;
import com.opengamma.analytics.financial.model.volatility.VolatilityAndBucketedSensitivities;
import com.opengamma.analytics.financial.model.volatility.surface.SmileDeltaTermStructureParametersStrikeInterpolation;
import com.opengamma.util.money.Currency;
/**
* Interface to Forex volatility smile described from delta and multi-curves provider.
*/
public interface BlackForexSmileProviderInterface extends BlackForexProviderInterface<SmileDeltaTermStructureParametersStrikeInterpolation> {
/**
* Returns the (Black implied) volatility
* @param ccy1 The first currency.
* @param ccy2 The second currency.
* @param time The time to expiration.
* @param strike The strike.
* @param forward The forward.
* @return The volatility.
*/
double getVolatility(final Currency ccy1, final Currency ccy2, final double time, final double strike, final double forward);
/**
* Returns the volatility and the sensitivity of this volatility to the points that were used in
* surface construction.
* @param ccy1 The first currency.
* @param ccy2 The second currency.
* @param time The time to expiration.
* @param strike The strike.
* @param forward The forward.
* @return Volatility and bucketed sensitivities
*/
VolatilityAndBucketedSensitivities getVolatilityAndSensitivities(final Currency ccy1, final Currency ccy2, final double time, final double strike, final double forward);
}