///
import { PublicKey, TokenAmount } from "@solana/web3.js";
import { Receivable as IDLReceivable, ReceivableAmountsRepaid as IDLReceivableAmountsRepaid, ReceivableInfo } from "../idl/idl.types";
import { Base } from "../rpc/Base";
import { CredixClient, SolanaContext } from "../rpc/CredixClient";
import { Fraction } from "./Fraction";
import { Market } from "./Market";
import { DaycountConvention } from "./RepaymentSchedule";
export type ReceivableAmountsRepaid = {
originationFee: TokenAmount;
discount: TokenAmount;
advancedAmount: TokenAmount;
toSeller: TokenAmount;
};
export declare const toTrancheAmountsRepaid: (idlAmountsRepaid: IDLReceivableAmountsRepaid) => ReceivableAmountsRepaid;
export declare class Receivable extends Base {
address: PublicKey;
market?: Market;
constructor(address: PublicKey, receivable: IDLReceivable, client: CredixClient, solanaContext: SolanaContext, market: Market | null);
reload(): Promise;
get isFunded(): boolean;
get totalRepaid(): TokenAmount;
get fundedTs(): number | null;
get faceValue(): TokenAmount;
get advanceRate(): Fraction;
get discountRate(): Fraction;
get expectedDueTs(): number;
get daycountConvention(): DaycountConvention;
get baseValue(): TokenAmount;
discountAmount(date: Date): TokenAmount;
get expectedDiscountAmount(): TokenAmount;
get advancedAmount(): TokenAmount;
get receivableInfo(): ReceivableInfo;
get sellerTokenAccount(): PublicKey;
get baseMintPk(): PublicKey;
get repaidAmounts(): ReceivableAmountsRepaid;
get collectionTokenAccount(): PublicKey;
static generatePDA(duplicataIdentifier: string, programId: PublicKey): [PublicKey, number];
static splitDuplicataIdentifier(duplicataIdentifier: string): [string, string];
private repayReceivableBuilder;
repayIx(owner?: PublicKey): Promise;
repay(): Promise;
}
//# sourceMappingURL=Receivable.d.ts.map