import { DayCountBasisConvention, PriceSide } from '../../content/ipa';
import { CalendarAdjustment, ConvexityAdjustment, ExtrapolationMode, InterpolationMode, MainConstituentAssetClass, RiskType, Step, Turn } from './curves';
import { ZcCurveDefinition as ZcCurveDefinitionInterface } from './curves/common-curves.interfaces';
import { Content as ForwardCurveContent, CurveDefinition as ForwardCurveCurveDefinition, Definition as ForwardCurveDefinition, Params as ForwardCurveParams, SwapZcCurveDefinition as SwapZcCurveDefinitionInterface, SwapZcCurveParameters } from './curves/forward-curve';
import { Content as ForwardCurvesContent, Params as ForwardCurvesParams, Definition as CurvesDefinition } from './curves/forward-curves';
import { Params as ZcCurveDefinitionParams, Content as ZcCurveDefinitionContent, Definition as ZcCurveDefinitionDefinition } from './curves/zc-curve-definition';
import { Params as ZcCurveDefinitionsParams, Content as ZcCurveDefinitionsContent, Definition as ZcCurveDefinitionsDefinition } from './curves/zc-curve-definitions';
import { Content as ZcCurveContent, Parameters as ZcCurveParameters, Params as ZcCurveParams, RequestItem as ZcCurveRequestItem, ZcCurveMainParameters, CurveDefinition as ZcCurveCurveDefinition, Definition as ZcCurveDefinition } from './curves/zc-curve';
import { Content as ZcCurvesContent, Params as ZcCurvesParams, Parameters as ZcCurvesParameters, RequestItem as ZcCurvesRequestItem, CurveDefinition as ZcCurvesCurveDefinition, ZcCurveMainParameters as ZcCurvesMainParameters, Definition as ZcCurvesDefinition } from './curves/zc-curves';
import { Content as FinancialContractsContent, Definition as FinancialContractsDefinition, FinancialContractsDefinitions, FinancialInstrument, FinancialInstrumentParams, Outputs as FinancialContractsOutputs, Params as FinancialContractsParams, Table, TableRow } from './financial-contracts';
import { FinancialInstrument as BondFinancialInstrument, BenchmarkYieldSelectionMode as BondBenchmarkYieldSelectionMode, InstrumentDefinition as BondInstrumentDefinition, Params as BondParams, PricingParameters as BondPricingParameters, ProjectedIndexCalculationMethod as BondProjectedIndexCalculationMethod, RedemptionDateType as BondRedemptionDateType, Rounding as BondRounding, RoundingParameters as BondRoundingParameters, RoundingType as BondRoundingType, YieldType as BondYieldType, Definition as BondDefinition } from './financial-contracts/bond';
import { BondFutureUnderlyingContract, Definition as BondFutureDefinition, Params as BondFutureParams, FinancialInstrument as BondFutureFinancialInstrument, InstrumentDefinition as BondFutureInstrumentDefinition, PricingParameters as BondFuturePricingParameters } from './financial-contracts/bond-future';
import { AmortizationFrequency, AmortizationItemDefinition, AmortizationType, ConvexityAdjustmentIntegrationMethod, ConvexityAdjustmentMethod, InstrumentDefinition as CapFloorInstrumentDefinition, Params as CapFloorParams, PricingParameters as CapFloorPricingParameters, FinancialInstrument as CapFloorFinancialInstrument, Definition as CapFloorDefinition } from './financial-contracts/cap-floor';
import { CDSConvention, DocClause, InstrumentDefinition as CDSInstrumentDefinition, Params as CDSParams, PremiumLegDefinition, PricingParameters as CDSPricingParameters, ProtectionLegDefinition, Seniority, FinancialInstrument as CDSFinancialInstrument, Definition as CDSDefinition } from './financial-contracts/cds';
import { FxCrossLegDefinition, FxCrossLegType, FxCrossType, InstrumentDefinition as FxCrossInstrumentDefinition, Params as FxCrossParams, PricingParameters as FxCrossPricingParameters, FinancialInstrument as FxCrossFinancialInstrument, Definition as FxCrossDefinition } from './financial-contracts/fx-cross';
import { Params as IRSwapParams, InstrumentDefinition as IRSwapInstrumentDefinition, PricingParameters as IRSwapPricingParameters, FinancialInstrument as IRSwapFinancialInstrument, Definition as IRSwapDefinition } from './financial-contracts/ir-swap';
import { BarrierMode, BidAskMid, BinaryType, DividendType, DoubleBarrierInfo, DoubleBinaryType, EtiOptionBarrierDefinition, EtiOptionBinaryDefinition, EtiOptionCBBCDefinition, EtiUnderlyingDefinition, FxDualCurrencyDefinition, FxOptionBarrierDefinition, FxOptionBinaryDefinition, FxOptionDoubleBarriersDefinition, FxOptionDoubleBinaryDefinition, FxUnderlyingDefinition, InOrOut, InstrumentDefinition as OptionInstrumentDefinition, Params as OptionParams, PricingModelType, PricingParameters as OptionPricingParameters, FinancialInstrument as OptionFinancialInstrument, SettlementType, TimeStamp, TimeZone, UnderlyingType, UpOrDown, VolatilityModel, VolatilityType, Definition as OptionDefinition } from './financial-contracts/option';
import { InstrumentDefinition as RepoInstrumentDefinition, Params as RepoParams, PricingParameters as RepoPricingParameters, FinancialInstrument as RepoFinancialInstrument, RepoCurveType, RepoParameters, RepoUnderlyingContractInstrument, RepoUnderlyingPricingParameters, Definition as RepoDefinition } from './financial-contracts/repo';
import { BermudanSwaptionDefinition, Params as SwaptionParams, FinancialInstrument as SwaptionFinancialInstrument, PricingParameters as SwaptionPricingParameters, InstrumentDefinition as SwaptionInstrumentDefinition, OptionSettlementType, ScheduleType, SwapDefinition, SwaptionMarketDataRule, Definition as SwaptionDefinition } from './financial-contracts/swaption';
import { InstrumentDefinition as TermDepositInstrumentDefinition, Params as TermDepositParams, PricingParameters as TermDepositPricingParameters, FinancialInstrument as TermDepositFinancialInstrument, Definition as TermDepositDefinition } from './financial-contracts/term-deposit';
import { AxisUnit, BaseItemParams, BaseRequestItem, Content as SurfacesContent, Definition as SurfacesDefinition, DiscountingType, InputVolatilityType, InstrumentParams, Layout as SurfacesLayout, LayoutDataPoint, LayoutFormat, Outputs, Params as SurfacesParams, RequestItem, SurfacesDefinitions, TimeStampSelectionType, VolatilityAdjustmentType } from './surfaces';
import { Params as CapParams, RequestItem as CapRequestItem, CalculationParams as CapCalculationParams, SurfaceDefinition as CapSurfaceDefinition, Definition as CapDefinition } from './surfaces/cap';
import { MaturityFilter, MoneynessType, MoneynessWeight, StrikeFilter, SurfaceFilters, Params as EtiParams, RequestItem as EtiRequestItem, VolatilityModel as EtiVolatilityModel, CalculationParams as EtiCalculationParams, SurfaceDefinition as EtiSurfaceDefinition, Definition as EtiDefinition } from './surfaces/eti';
import { DayWeight, InterpolationWeight, SwapCalculationMethod, Definition as FxDefinition, Params as FxParams, RequestItem as FxRequestItem, SurfaceDefinition as FxSurfaceDefinition, VolatilityModel as FxVolatilityModel, CalculationParams as FxCalculationParams } from './surfaces/fx';
import { Params as SurfaceSwaptionParams, SurfaceDefinition as SwaptionSurfaceDefinition, RequestItem as SwaptionRequestItem, CalculationParams as SwaptionCalculationParams, Definition as SurfaceSwaptionDefinition } from './surfaces/swaption';
export interface IPANamespace {
    DayCountBasisConvention: DayCountBasisConvention;
    PriceSide: PriceSide;
    Curves: {
        MainConstituentAssetClass: MainConstituentAssetClass;
        RiskType: RiskType;
        CalendarAdjustment: CalendarAdjustment;
        ExtrapolationMode: ExtrapolationMode;
        InterpolationMode: InterpolationMode;
        Step: Step;
        Turn: Turn;
        ZcCurveDefinitionInterface: ZcCurveDefinitionInterface;
        ConvexityAdjustment: ConvexityAdjustment;
        ForwardCurve: {
            CurveDefinition: ForwardCurveCurveDefinition;
            Params: ForwardCurveParams;
            SwapZcCurveDefinition: SwapZcCurveDefinitionInterface;
            SwapZcCurveParameters: SwapZcCurveParameters;
            Content: ForwardCurveContent;
            Definition: typeof ForwardCurveDefinition;
        };
        ForwardCurves: {
            Params: ForwardCurvesParams;
            Content: ForwardCurvesContent;
            Definition: typeof CurvesDefinition;
        };
        ZcCurveDefinition: {
            Params: ZcCurveDefinitionParams;
            Content: ZcCurveDefinitionContent;
            Definition: typeof ZcCurveDefinitionDefinition;
        };
        ZcCurveDefinitions: {
            Params: ZcCurveDefinitionsParams;
            Content: ZcCurveDefinitionsContent;
            Definition: typeof ZcCurveDefinitionsDefinition;
        };
        ZcCurve: {
            CurveDefinition: ZcCurveCurveDefinition;
            ZcCurveMainParameters: ZcCurveMainParameters;
            Parameters: ZcCurveParameters;
            RequestItem: ZcCurveRequestItem;
            Params: ZcCurveParams;
            Content: ZcCurveContent;
            Definition: typeof ZcCurveDefinition;
        };
        ZcCurves: {
            CurveDefinition: ZcCurvesCurveDefinition;
            ZcCurveMainParameters: ZcCurvesMainParameters;
            Parameters: ZcCurvesParameters;
            RequestItem: ZcCurvesRequestItem;
            Params: ZcCurvesParams;
            Content: ZcCurvesContent;
            Definition: typeof ZcCurvesDefinition;
        };
    };
    FinancialContracts: {
        Definition: typeof FinancialContractsDefinition;
        FinancialContractsDefinitions: FinancialContractsDefinitions;
        Params: FinancialContractsParams;
        FinancialInstrumentParams: FinancialInstrumentParams;
        Content: FinancialContractsContent;
        FinancialInstrument: FinancialInstrument;
        Outputs: FinancialContractsOutputs;
        Table: Table;
        TableRow: TableRow;
        Bond: {
            Params: BondParams;
            InstrumentDefinition: BondInstrumentDefinition;
            PricingParameters: BondPricingParameters;
            FinancialInstrument: BondFinancialInstrument;
            RedemptionDateType: BondRedemptionDateType;
            YieldType: BondYieldType;
            BenchmarkYieldSelectionMode: BondBenchmarkYieldSelectionMode;
            ProjectedIndexCalculationMethod: BondProjectedIndexCalculationMethod;
            Rounding: BondRounding;
            RoundingType: BondRoundingType;
            RoundingParameters: BondRoundingParameters;
            BOND_INSTRUMENT_TYPE: string;
            Definition: typeof BondDefinition;
        };
        BondFuture: {
            Params: BondFutureParams;
            FinancialInstrument: BondFutureFinancialInstrument;
            InstrumentDefinition: BondFutureInstrumentDefinition;
            PricingParameters: BondFuturePricingParameters;
            BOND_FUTURE_INSTRUMENT_TYPE: string;
            Definition: typeof BondFutureDefinition;
            BondFutureUnderlyingContract: typeof BondFutureUnderlyingContract;
        };
        CapFloor: {
            CAP_FLOOR_INSTRUMENT_TYPE: string;
            Params: CapFloorParams;
            FinancialInstrument: CapFloorFinancialInstrument;
            InstrumentDefinition: CapFloorInstrumentDefinition;
            PricingParameters: CapFloorPricingParameters;
            AmortizationItemDefinition: AmortizationItemDefinition;
            AmortizationFrequency: AmortizationFrequency;
            AmortizationType: AmortizationType;
            ConvexityAdjustmentIntegrationMethod: ConvexityAdjustmentIntegrationMethod;
            ConvexityAdjustmentMethod: ConvexityAdjustmentMethod;
            Definition: typeof CapFloorDefinition;
        };
        CDS: {
            Params: CDSParams;
            FinancialInstrument: CDSFinancialInstrument;
            InstrumentDefinition: CDSInstrumentDefinition;
            PricingParameters: CDSPricingParameters;
            CDSConvention: CDSConvention;
            Seniority: Seniority;
            DocClause: DocClause;
            PremiumLegDefinition: PremiumLegDefinition;
            ProtectionLegDefinition: ProtectionLegDefinition;
            Definition: typeof CDSDefinition;
        };
        FxCross: {
            FX_CROSS_INSTRUMENT_TYPE: string;
            Params: FxCrossParams;
            FinancialInstrument: FxCrossFinancialInstrument;
            InstrumentDefinition: FxCrossInstrumentDefinition;
            PricingParameters: FxCrossPricingParameters;
            FxCrossType: FxCrossType;
            FxCrossLegDefinition: FxCrossLegDefinition;
            FxCrossLegType: FxCrossLegType;
            Definition: typeof FxCrossDefinition;
        };
        IRSwap: {
            IR_SWAP_INSTRUMENT_TYPE: string;
            Params: IRSwapParams;
            FinancialInstrument: IRSwapFinancialInstrument;
            InstrumentDefinition: IRSwapInstrumentDefinition;
            PricingParameters: IRSwapPricingParameters;
            Definition: typeof IRSwapDefinition;
        };
        Option: {
            OPTION_INSTRUMENT_TYPE: string;
            Params: OptionParams;
            FinancialInstrument: OptionFinancialInstrument;
            InstrumentDefinition: OptionInstrumentDefinition;
            PricingParameters: OptionPricingParameters;
            VolatilityModel: VolatilityModel;
            TimeStamp: TimeStamp;
            VolatilityType: VolatilityType;
            DividendType: DividendType;
            PricingModelType: PricingModelType;
            UnderlyingType: UnderlyingType;
            FxUnderlyingDefinition: FxUnderlyingDefinition;
            EtiUnderlyingDefinition: EtiUnderlyingDefinition;
            UpOrDown: UpOrDown;
            InOrOut: InOrOut;
            BarrierMode: BarrierMode;
            EtiOptionBarrierDefinition: EtiOptionBarrierDefinition;
            FxOptionBarrierDefinition: FxOptionBarrierDefinition;
            FxOptionDoubleBarriersDefinition: FxOptionDoubleBarriersDefinition;
            DoubleBarrierInfo: DoubleBarrierInfo;
            BinaryType: BinaryType;
            DoubleBinaryType: DoubleBinaryType;
            SettlementType: SettlementType;
            EtiOptionBinaryDefinition: EtiOptionBinaryDefinition;
            FxOptionBinaryDefinition: FxOptionBinaryDefinition;
            FxOptionDoubleBinaryDefinition: FxOptionDoubleBinaryDefinition;
            EtiOptionCBBCDefinition: EtiOptionCBBCDefinition;
            FxDualCurrencyDefinition: FxDualCurrencyDefinition;
            BidAskMid: BidAskMid;
            TimeZone: TimeZone;
            Definition: typeof OptionDefinition;
        };
        Repo: {
            REPO_INSTRUMENT_TYPE: string;
            Params: RepoParams;
            FinancialInstrument: RepoFinancialInstrument;
            PricingParameters: RepoPricingParameters;
            RepoCurveType: RepoCurveType;
            InstrumentDefinition: RepoInstrumentDefinition;
            RepoUnderlyingContractInstrument: RepoUnderlyingContractInstrument;
            RepoUnderlyingPricingParameters: RepoUnderlyingPricingParameters;
            RepoParameters: RepoParameters;
            Definition: typeof RepoDefinition;
        };
        Swaption: {
            Params: SwaptionParams;
            FinancialInstrument: SwaptionFinancialInstrument;
            InstrumentDefinition: SwaptionInstrumentDefinition;
            PricingParameters: SwaptionPricingParameters;
            BermudanSwaptionDefinition: BermudanSwaptionDefinition;
            SwaptionMarketDataRule: SwaptionMarketDataRule;
            ScheduleType: ScheduleType;
            OptionSettlementType: OptionSettlementType;
            SwapDefinition: SwapDefinition;
            Definitions: typeof SwaptionDefinition;
        };
        TermDeposit: {
            TERM_DEPOSIT_INSTRUMENT_TYPE: string;
            Params: TermDepositParams;
            FinancialInstrument: TermDepositFinancialInstrument;
            InstrumentDefinition: TermDepositInstrumentDefinition;
            PricingParameters: TermDepositPricingParameters;
            Definition: typeof TermDepositDefinition;
        };
    };
    Surfaces: {
        LayoutFormat: LayoutFormat;
        AxisUnit: AxisUnit;
        InputVolatilityType: InputVolatilityType;
        TimeStampSelectionType: TimeStampSelectionType;
        DiscountingType: DiscountingType;
        VolatilityAdjustmentType: VolatilityAdjustmentType;
        Outputs: Outputs;
        SurfacesDefinitions: SurfacesDefinitions;
        Params: SurfacesParams;
        InstrumentParams: InstrumentParams;
        LayoutDataPoint: LayoutDataPoint;
        Layout: SurfacesLayout;
        RequestItem: RequestItem;
        BaseItemParams: BaseItemParams<any>;
        BaseRequestItem: BaseRequestItem;
        Content: SurfacesContent;
        Cap: {
            CAP_TYPE: string;
            Params: CapParams;
            RequestItem: CapRequestItem;
            SurfaceDefinition: CapSurfaceDefinition;
            CalculationParams: CapCalculationParams;
            Definition: typeof CapDefinition;
        };
        Eti: {
            ETI_TYPE: string;
            Params: EtiParams;
            RequestItem: EtiRequestItem;
            SurfaceDefinition: EtiSurfaceDefinition;
            InputVolatilityType: InputVolatilityType;
            MoneynessType: MoneynessType;
            VolatilityModel: EtiVolatilityModel;
            MoneynessWeight: MoneynessWeight;
            MaturityFilter: MaturityFilter;
            StrikeFilter: StrikeFilter;
            SurfaceFilters: SurfaceFilters;
            CalculationParams: EtiCalculationParams;
            Definition: typeof EtiDefinition;
        };
        Fx: {
            Params: FxParams;
            RequestItem: FxRequestItem;
            SurfaceDefinition: FxSurfaceDefinition;
            SwapCalculationMethod: SwapCalculationMethod;
            VolatilityModel: FxVolatilityModel;
            BidAskMid: BidAskMid;
            DayWeight: DayWeight;
            InterpolationWeight: InterpolationWeight;
            CalculationParams: FxCalculationParams;
            Definition: typeof FxDefinition;
        };
        Swaption: {
            SWAPTION_TYPE: string;
            Params: SurfaceSwaptionParams;
            SurfaceDefinition: SwaptionSurfaceDefinition;
            RequestItem: SwaptionRequestItem;
            CalculationParams: SwaptionCalculationParams;
            Definition: typeof SurfaceSwaptionDefinition;
        };
        Definition: typeof SurfacesDefinition;
    };
}
