/// import { ConfirmOptions, PublicKey } from "@solana/web3.js"; import { DaycountConvention, Deal, Fraction, TimeFrame, VariableRate } from "."; import { DistributionWaterfallType } from "./accounts/DistributionWaterfall"; import { RepaymentAllocation } from "./accounts/DistributionWaterfall"; export interface CredixClientConfig { programId: PublicKey; secondaryMarketProgramId: PublicKey; scowProgramId: PublicKey; variableRatesProgramId: PublicKey; confirmOptions?: ConfirmOptions; } export interface UpdateProgramStateConfig { credixMultisigKey?: PublicKey; credixManagers?: PublicKey[]; credixTreasury?: PublicKey; } export interface MarketConfig { name: string; credixFeePercentage: Fraction; withdrawalFee: Fraction; multisig?: PublicKey; managers?: PublicKey[]; passIssuers?: PublicKey[]; withdrawEpochRequestSeconds?: number; withdrawEpochRedeemSeconds?: number; withdrawEpochAvailableLiquidityPhase?: number; baseMint: PublicKey; treasury: PublicKey; lpTokenName: string; lpTokenSymbol: string; hasWithdrawEpochs?: boolean; } export type CredixPassFlagsConfig = { underwriter: boolean; borrower: boolean; active?: boolean; disableWithdrawalFee?: boolean; bypassWithdrawEpochs?: boolean; multisig?: boolean; marketManager?: boolean; passIssuer?: boolean; canCreateReceivable?: boolean; canFundReceivable?: boolean; adminPassIssuer?: boolean; canCreateWithdrawRequestForInvestor?: boolean; }; export interface CredixPassConfig { flags: CredixPassFlagsConfig; releaseTimestamp: number; amountCap?: number; } export interface SetCredixPassFlagsConfig { flags: CredixPassFlagsConfig; } export interface TrancheConfig { index: number; maxDepositPercentage: Fraction; earlyWithdrawalPrincipal: boolean; fundedByLiquidityPool: boolean; name: string; size: number; interest: Fraction; interestPerformanceFee: Fraction; principalPerformanceFee: Fraction; membershipFee: Fraction; lateInterest: Fraction; latePrincipal: Fraction; earlyPrincipal: Fraction; variableRate?: VariableRate; } export interface DealConfig { borrower: PublicKey; maxFundingDuration: number; name: string; arrangementFee: number; arrangementFeePercentage: Fraction; migrated: boolean; } export interface RepaymentPeriodConfig { waterfallIndex: number; accrualInDays: number; principalExpected: number | null; timeFrame: TimeFrame; calculationDate?: number; } export interface RepaymentScheduleConfig { totalPeriods: number; startTs: number; repaymentPeriods: RepaymentPeriodConfig[]; daycountConvention: DaycountConvention; waterfallDefinitions: DistributionWaterfall[]; calculationDaysBeforeEnd?: number; } export interface AdjustRepaymentScheduleConfig { periods: RepaymentPeriodConfig[]; changeFrom: number; calculationDaysBeforeEnd?: number; } export interface TranchePassConfig { active: boolean; } export interface WaterfallTier { trancheIndices: number[]; slash: boolean; charge: boolean; allocations: RepaymentAllocation[]; } export interface DistributionWaterfall { waterfallType: DistributionWaterfallType; tiers: WaterfallTier[]; } export interface BulletLoanPeriodsGenerationConfig { principal: number; interest: Fraction; totalRepayments: number; } export interface UpdateGlobalMarketConfig { treasuryPoolTokenAccount?: PublicKey; withdrawalFee?: Fraction; poolSizeLimitPercentage?: Fraction; withdrawEpochRequestSeconds?: number; withdrawEpochRedeemSeconds?: number; withdrawEpochAvailableLiquiditySeconds?: number; hasWithdrawEpochs?: boolean; } export interface UpdateDealConfig { serviceFeePercentage: Fraction; serviceFees: number; serviceFeesRepaid: number; yearLatestServiceFeesCharged: number; performanceFeePercentage?: Fraction; openedAt?: number; } export interface UpdateTrancheNameAndRatesConfig { name?: string; interest?: Fraction; late_interest_fee?: Fraction; interest_performance_fee?: Fraction; late_principal_fee?: Fraction; principal_performance_fee?: Fraction; early_principal_fee?: Fraction; membership_fee?: Fraction; } export interface UpdateMarketAdminsConfig { multisig?: PublicKey; managers?: PublicKey[]; passIssuers?: PublicKey[]; } export interface LpClaimConfig { investor: PublicKey; baseAmountDeposit: number; } export interface TrancheClaimConfig { investor: PublicKey; baseAmountDeposit: number; trancheIndex: number; } export interface ClaimsConfig { lpClaims: LpClaimConfig[]; trancheClaims: TrancheClaimConfig[]; } export interface SellOrderConfig { tokenAAmount: number; tokenBAmount: number; tokenAMint: PublicKey; tokenBMint: PublicKey; buyer?: PublicKey; trancheIndex?: number; deal?: Deal; } export interface TrancheUpscaleConfig { upscaleSize: number; returnPercentage: Fraction; maxDepositPercentage: Fraction; earlyWithdrawalInterest: boolean; earlyWithdrawalPrincipal: boolean; } export interface UpdateArrangementFeeConfig { arrangementFeePercentage: Fraction; arrangementFees: number; arrangementFeesRepaid: number; timeLatestArrangementFeesCharged: number; } export interface VariableInterestRatesConfig { sofr: Fraction; } export interface CreateReceivableConfig { duplicataIdentifier: string; faceValue: number; advanceRate: Fraction; monthlyDiscountRate: Fraction; originationFeePercentage: Fraction; expectedDueTs: number; daycountConvention: DaycountConvention; contractIdentifier: string; hashedTaxIdBuyer: string; hashedTaxIdSeller: string; sellerTokenAccount: PublicKey; } //# sourceMappingURL=config.d.ts.map