/// import { PublicKey } from "@solana/web3.js"; import { TranchePassConfig, UpdateTrancheNameAndRatesConfig } from ".."; import { DealTranche as ProgramTranche } from "../idl/idl.types"; import { Base } from "../rpc/Base"; import { CredixClient, SolanaContext } from "../rpc/CredixClient"; import { Deal } from "./Deal"; import { Fraction } from "./Fraction"; import { ScowTrancheInvestor } from "./ScowTrancheInvestor"; import { TrancheInfo } from "./TrancheInfo"; import { TranchePass } from "./TranchePass"; import { Tranches } from "./Tranches"; export declare enum VariableRate { None = 0, Sofr = 1 } export declare class Tranche extends Base { deal: Deal; private tranches; constructor(deal: Deal, tranches: Tranches, programVersion: ProgramTranche, client: CredixClient, solanaContext: SolanaContext); get index(): number; get isFundedByPool(): boolean; get size(): import("@solana/web3.js").TokenAmount; get returnPercentage(): Fraction; get rates(): import("../utils/tranche.utils").TrancheRates; get name(): string; get amountDeposited(): import("@solana/web3.js").TokenAmount; get amountsRepaid(): import("../utils/tranche.utils").TrancheAmountsRepaid; get amountsDue(): import("../utils/tranche.utils").TrancheAmountsDue; get hasPreviousPeriodAmountDue(): boolean; get hasLateFeeRates(): boolean; get totalAmountDue(): import("@solana/web3.js").TokenAmount; get mint(): PublicKey; get maxDepositPercentage(): Fraction; get upscaleSize(): import("@solana/web3.js").TokenAmount; get variableRate(): VariableRate; get optionalAccount(): boolean; get isFullyFunded(): boolean; get interestRepaidUntilLastUpscale(): import("@solana/web3.js").TokenAmount; get outstandingPrincipal(): import("@solana/web3.js").TokenAmount; get isFunded(): boolean; get interestRateUpdatedAt(): number; static generateMintPDA(tranches: PublicKey, index: number, programId: PublicKey): [PublicKey, number]; private issuePassBuilder; issuePassIx(investor: PublicKey, owner?: PublicKey): Promise; issuePass(investor: PublicKey): Promise; private updatePassBuilder; updatePassIx(investor: PublicKey, tranchePassConfig: TranchePassConfig, owner?: PublicKey): Promise; updatePass(investor: PublicKey, tranchePassConfig: TranchePassConfig): Promise; fetchPass(investor: PublicKey): Promise; userTrancheBalance(user: PublicKey): Promise; findTrancheTokenAccount(pk: PublicKey): PublicKey; deposit(depositAmount: number): Promise; private depositPool; depositInvestorIx(depositAmount: number, investor: PublicKey): Promise; private depositInvestor; private depositInvestorBuilder; burn(amount: number): Promise; withdraw(amount?: number): Promise; private withdrawPool; withdrawInvestorIx(investor: PublicKey): Promise; private withdrawInvestor; private withdrawInvestorBuilder; get isRepaid(): boolean; get netAPR(): number; get grossAPR(): number; calculateInvestorWithdrawableAmount(investor: PublicKey, onlyInterest?: boolean): Promise; calculateInvestorGains(investor: PublicKey): Promise; private investorRatios; fetchTrancheInfo(): Promise; get financingFee(): number; get principalRepaid(): import("@solana/web3.js").TokenAmount; private getSnapshots; private updateTrancheNameAndRatesBuilder; updateTrancheNameAndRatesIx(updateConfig: UpdateTrancheNameAndRatesConfig, owner?: PublicKey): Promise; updateTrancheNameAndRates(updateConfig: UpdateTrancheNameAndRatesConfig): Promise; virUpdateRelevantRateIX(interest: Fraction, owner?: PublicKey): Promise; virUpdateRelevantRate(interest: Fraction, owner?: PublicKey): Promise; fetchScowTrancheInvestor(investorBaseTokenAccount: PublicKey): Promise; createScowTrancheInvestorBuilder(investorBaseTokenAccount: PublicKey, owner?: PublicKey): Promise>; createScowTrancheInvestor(investorBaseTokenAccount: PublicKey): Promise; createScowTrancheInvestorBuilderIx(investorBaseTokenAccount: PublicKey, owner?: PublicKey): Promise; private writeOffDealPrincipalBuilder; writeOffDealPrincipal(amount: number): Promise; writeOffDealPrincipalIx(amount: number, owner?: PublicKey): Promise; } //# sourceMappingURL=Tranche.d.ts.map