import { LusidInstrument } from './lusidInstrument'; import { FlowConventions } from './flowConventions'; import { InflationIndexConventions } from './inflationIndexConventions'; /** * LUSID representation of an Inflation Leg. This leg instrument is part of the InflationSwap instrument, but can also be used as a standalone instrument. The implementation supports the following inflation leg types: * Zero Coupon inflation leg (CPI Leg), with a single payment at maturity. * Year on Year inflation leg * LPI Swap Leg (capped and floored YoY) */ export interface InflationLeg extends LusidInstrument { /** * The start date of the instrument. This is normally synonymous with the trade-date. */ startDate: string; /** * The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it. */ maturityDate: string; flowConventions: FlowConventions; /** * Optional BaseCPI, if specified it will be used in place of BaseCPI(StartDate). This should not be required for standard inflation swaps. */ baseCPI?: number | null; /** * The calculation type. ZeroCoupon is used for CPILegs where there is a single payment at maturity of Notional * (CPI(T) / CPI(T0) - 1) where CPI(T0) is the BaseCPI of this leg YearOnYear is used for YoY and LPI swap legs where there is a series of annual payments Notional * dayCount * (CPI(t) / CPI(t-1) - 1) If a cap and floor is added to this it becomes an LPI swap leg. Compounded is used for inflation swap legs where there is a series of annual payments Notional * dayCount * (CPI(t) / CPI(T0) - 1) i.e. the BaseCPI is used every year. These swaps are not as common as CPI or Supported string (enumeration) values are: [ZeroCoupon, YearOnYear, Compounded]. */ calculationType: string; /** * Optional cap, needed for LPI Legs or CPI Legs with Caps */ capRate?: number | null; /** * Optional floor, needed for LPI Legs or CPI Legs with Floors. */ floorRate?: number | null; inflationIndexConventions: InflationIndexConventions; /** * The notional */ notional: number; /** * PayReceive flag for the inflation leg. This field is optional and defaults to Pay. Supported string (enumeration) values are: [Pay, Receive]. */ payReceive?: string | null; /** * The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg */ instrumentType: InflationLeg.InstrumentTypeEnum; } export declare namespace InflationLeg { type InstrumentTypeEnum = 'QuotedSecurity' | 'InterestRateSwap' | 'FxForward' | 'Future' | 'ExoticInstrument' | 'FxOption' | 'CreditDefaultSwap' | 'InterestRateSwaption' | 'Bond' | 'EquityOption' | 'FixedLeg' | 'FloatingLeg' | 'BespokeCashFlowsLeg' | 'Unknown' | 'TermDeposit' | 'ContractForDifference' | 'EquitySwap' | 'CashPerpetual' | 'CapFloor' | 'CashSettled' | 'CdsIndex' | 'Basket' | 'FundingLeg' | 'FxSwap' | 'ForwardRateAgreement' | 'SimpleInstrument' | 'Repo' | 'Equity' | 'ExchangeTradedOption' | 'ReferenceInstrument' | 'ComplexBond' | 'InflationLinkedBond' | 'InflationSwap' | 'SimpleCashFlowLoan' | 'TotalReturnSwap' | 'InflationLeg'; const InstrumentTypeEnum: { QuotedSecurity: InstrumentTypeEnum; InterestRateSwap: InstrumentTypeEnum; FxForward: InstrumentTypeEnum; Future: InstrumentTypeEnum; ExoticInstrument: InstrumentTypeEnum; FxOption: InstrumentTypeEnum; CreditDefaultSwap: InstrumentTypeEnum; InterestRateSwaption: InstrumentTypeEnum; Bond: InstrumentTypeEnum; EquityOption: InstrumentTypeEnum; FixedLeg: InstrumentTypeEnum; FloatingLeg: InstrumentTypeEnum; BespokeCashFlowsLeg: InstrumentTypeEnum; Unknown: InstrumentTypeEnum; TermDeposit: InstrumentTypeEnum; ContractForDifference: InstrumentTypeEnum; EquitySwap: InstrumentTypeEnum; CashPerpetual: InstrumentTypeEnum; CapFloor: InstrumentTypeEnum; CashSettled: InstrumentTypeEnum; CdsIndex: InstrumentTypeEnum; Basket: InstrumentTypeEnum; FundingLeg: InstrumentTypeEnum; FxSwap: InstrumentTypeEnum; ForwardRateAgreement: InstrumentTypeEnum; SimpleInstrument: InstrumentTypeEnum; Repo: InstrumentTypeEnum; Equity: InstrumentTypeEnum; ExchangeTradedOption: InstrumentTypeEnum; ReferenceInstrument: InstrumentTypeEnum; ComplexBond: InstrumentTypeEnum; InflationLinkedBond: InstrumentTypeEnum; InflationSwap: InstrumentTypeEnum; SimpleCashFlowLoan: InstrumentTypeEnum; TotalReturnSwap: InstrumentTypeEnum; InflationLeg: InstrumentTypeEnum; }; }