import * as Bond from './bond'; import { BuySell, DayCountBasisConvention, FinancialInstrumentParams } from './financial-contracts'; export { TableRow, Outputs, PaymentRollConvention, DayCountBasisConvention, BusinessDayConvention } from './financial-contracts'; export interface Params extends InstrumentDefinition, FinancialInstrumentParams { pricingParameters?: PricingParameters; } export interface FinancialInstrument { instrumentType: string; instrumentDefinition: InstrumentDefinition; pricingParameters?: PricingParameters; } export interface PricingParameters { valuationDate?: string; marketDataDate?: string; settlementConvention?: string; reportCcy?: string; couponReinvestmentRatePercent?: number; repoCurveType?: RepoCurveType; } export declare enum RepoCurveType { RepoCurve = "RepoCurve", DepositCurve = "DepositCurve", LiborFixing = "LiborFixing" } export interface InstrumentDefinition { underlyingInstruments?: RepoUnderlyingContractInstrument[]; buySell?: BuySell; instrumentTag?: string; startDate?: string; endDate?: string; tenor?: string; isCouponExchanged?: boolean; repoRatePercent?: number; repoRateFrequency?: RepoRateFrequency; repoRateType?: RepoRateType; dayCountBasis?: DayCountBasisConvention; } export interface RepoUnderlyingContractInstrument { instrumentType: string; instrumentDefinition: Bond.InstrumentDefinition; pricingParameters?: RepoUnderlyingPricingParameters; } export interface RepoUnderlyingPricingParameters { marketDataDate?: string; repoParameters?: RepoParameters; pricingParametersAtEnd?: Bond.PricingParameters; pricingParametersAtStart?: Bond.PricingParameters; reportCcy?: string; valuationDate?: string; } export interface RepoParameters { couponPaidAtHorizon?: boolean; haircutRatePercent?: number; initialMarginPercent?: number; purchasePrice?: number; repurchasePrice?: number; } export interface RepoUnderlyingContractParams extends Bond.InstrumentDefinition { pricingParameters?: RepoUnderlyingPricingParameters; } export declare enum RepoRateFrequency { Annual = "Annual", SemiAnnual = "SemiAnnual", Quarterly = "Quarterly", Monthly = "Monthly" } export declare enum RepoRateType { MoneyMarket = "MoneyMarket", Actual = "Actual", Continuous = "Continuous", Discount = "Discount", Compounded = "Compounded", SimpleJapanese = "SimpleJapanese", CompoundedJapanese = "CompoundedJapanese" }