import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export declare namespace Accountant { type PaymentAllocationStruct = { interestPayment: BigNumberish; principalPayment: BigNumberish; additionalBalancePayment: BigNumberish; }; type PaymentAllocationStructOutput = [ BigNumber, BigNumber, BigNumber ] & { interestPayment: BigNumber; principalPayment: BigNumber; additionalBalancePayment: BigNumber; }; } export declare namespace FixedPoint { type UnsignedStruct = { rawValue: BigNumberish; }; type UnsignedStructOutput = [BigNumber] & { rawValue: BigNumber; }; } export interface AccountantInterface extends utils.Interface { functions: { "BLOCKS_PER_DAY()": FunctionFragment; "BLOCKS_PER_YEAR()": FunctionFragment; "FP_SCALING_FACTOR()": FunctionFragment; "INTEREST_DECIMALS()": FunctionFragment; "allocatePayment(uint256,uint256,uint256,uint256)": FunctionFragment; "calculateAmountOwedForOneDay(CreditLine)": FunctionFragment; "calculateInterestAccrued(CreditLine,uint256,uint256,uint256)": FunctionFragment; "calculateInterestAndPrincipalAccrued(CreditLine,uint256,uint256)": FunctionFragment; "calculatePrincipalAccrued(CreditLine,uint256,uint256)": FunctionFragment; "calculateWritedownFor(CreditLine,uint256,uint256,uint256)": FunctionFragment; "lateFeeApplicable(CreditLine,uint256,uint256)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "BLOCKS_PER_DAY" | "BLOCKS_PER_YEAR" | "FP_SCALING_FACTOR" | "INTEREST_DECIMALS" | "allocatePayment" | "calculateAmountOwedForOneDay" | "calculateInterestAccrued" | "calculateInterestAndPrincipalAccrued" | "calculatePrincipalAccrued" | "calculateWritedownFor" | "lateFeeApplicable"): FunctionFragment; encodeFunctionData(functionFragment: "BLOCKS_PER_DAY", values?: undefined): string; encodeFunctionData(functionFragment: "BLOCKS_PER_YEAR", values?: undefined): string; encodeFunctionData(functionFragment: "FP_SCALING_FACTOR", values?: undefined): string; encodeFunctionData(functionFragment: "INTEREST_DECIMALS", values?: undefined): string; encodeFunctionData(functionFragment: "allocatePayment", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateAmountOwedForOneDay", values: [string]): string; encodeFunctionData(functionFragment: "calculateInterestAccrued", values: [string, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateInterestAndPrincipalAccrued", values: [string, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "calculatePrincipalAccrued", values: [string, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateWritedownFor", values: [string, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "lateFeeApplicable", values: [string, BigNumberish, BigNumberish]): string; decodeFunctionResult(functionFragment: "BLOCKS_PER_DAY", data: BytesLike): Result; decodeFunctionResult(functionFragment: "BLOCKS_PER_YEAR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "FP_SCALING_FACTOR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "INTEREST_DECIMALS", data: BytesLike): Result; decodeFunctionResult(functionFragment: "allocatePayment", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateAmountOwedForOneDay", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateInterestAccrued", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateInterestAndPrincipalAccrued", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculatePrincipalAccrued", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateWritedownFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "lateFeeApplicable", data: BytesLike): Result; events: {}; } export interface Accountant extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: AccountantInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { BLOCKS_PER_DAY(overrides?: CallOverrides): Promise<[BigNumber]>; BLOCKS_PER_YEAR(overrides?: CallOverrides): Promise<[BigNumber]>; FP_SCALING_FACTOR(overrides?: CallOverrides): Promise<[BigNumber]>; INTEREST_DECIMALS(overrides?: CallOverrides): Promise<[BigNumber]>; allocatePayment(paymentAmount: BigNumberish, balance: BigNumberish, interestOwed: BigNumberish, principalOwed: BigNumberish, overrides?: CallOverrides): Promise<[Accountant.PaymentAllocationStructOutput]>; calculateAmountOwedForOneDay(cl: string, overrides?: CallOverrides): Promise<[FixedPoint.UnsignedStructOutput]>; calculateInterestAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, lateFeeGracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>; calculateInterestAndPrincipalAccrued(cl: string, blockNumber: BigNumberish, lateFeeGracePeriod: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; calculatePrincipalAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>; calculateWritedownFor(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, maxDaysLate: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; lateFeeApplicable(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise<[boolean]>; }; BLOCKS_PER_DAY(overrides?: CallOverrides): Promise; BLOCKS_PER_YEAR(overrides?: CallOverrides): Promise; FP_SCALING_FACTOR(overrides?: CallOverrides): Promise; INTEREST_DECIMALS(overrides?: CallOverrides): Promise; allocatePayment(paymentAmount: BigNumberish, balance: BigNumberish, interestOwed: BigNumberish, principalOwed: BigNumberish, overrides?: CallOverrides): Promise; calculateAmountOwedForOneDay(cl: string, overrides?: CallOverrides): Promise; calculateInterestAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, lateFeeGracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise; calculateInterestAndPrincipalAccrued(cl: string, blockNumber: BigNumberish, lateFeeGracePeriod: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; calculatePrincipalAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, overrides?: CallOverrides): Promise; calculateWritedownFor(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, maxDaysLate: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; lateFeeApplicable(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise; callStatic: { BLOCKS_PER_DAY(overrides?: CallOverrides): Promise; BLOCKS_PER_YEAR(overrides?: CallOverrides): Promise; FP_SCALING_FACTOR(overrides?: CallOverrides): Promise; INTEREST_DECIMALS(overrides?: CallOverrides): Promise; allocatePayment(paymentAmount: BigNumberish, balance: BigNumberish, interestOwed: BigNumberish, principalOwed: BigNumberish, overrides?: CallOverrides): Promise; calculateAmountOwedForOneDay(cl: string, overrides?: CallOverrides): Promise; calculateInterestAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, lateFeeGracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise; calculateInterestAndPrincipalAccrued(cl: string, blockNumber: BigNumberish, lateFeeGracePeriod: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; calculatePrincipalAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, overrides?: CallOverrides): Promise; calculateWritedownFor(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, maxDaysLate: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; lateFeeApplicable(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { BLOCKS_PER_DAY(overrides?: CallOverrides): Promise; BLOCKS_PER_YEAR(overrides?: CallOverrides): Promise; FP_SCALING_FACTOR(overrides?: CallOverrides): Promise; INTEREST_DECIMALS(overrides?: CallOverrides): Promise; allocatePayment(paymentAmount: BigNumberish, balance: BigNumberish, interestOwed: BigNumberish, principalOwed: BigNumberish, overrides?: CallOverrides): Promise; calculateAmountOwedForOneDay(cl: string, overrides?: CallOverrides): Promise; calculateInterestAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, lateFeeGracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise; calculateInterestAndPrincipalAccrued(cl: string, blockNumber: BigNumberish, lateFeeGracePeriod: BigNumberish, overrides?: CallOverrides): Promise; calculatePrincipalAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, overrides?: CallOverrides): Promise; calculateWritedownFor(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, maxDaysLate: BigNumberish, overrides?: CallOverrides): Promise; lateFeeApplicable(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise; }; populateTransaction: { BLOCKS_PER_DAY(overrides?: CallOverrides): Promise; BLOCKS_PER_YEAR(overrides?: CallOverrides): Promise; FP_SCALING_FACTOR(overrides?: CallOverrides): Promise; INTEREST_DECIMALS(overrides?: CallOverrides): Promise; allocatePayment(paymentAmount: BigNumberish, balance: BigNumberish, interestOwed: BigNumberish, principalOwed: BigNumberish, overrides?: CallOverrides): Promise; calculateAmountOwedForOneDay(cl: string, overrides?: CallOverrides): Promise; calculateInterestAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, lateFeeGracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise; calculateInterestAndPrincipalAccrued(cl: string, blockNumber: BigNumberish, lateFeeGracePeriod: BigNumberish, overrides?: CallOverrides): Promise; calculatePrincipalAccrued(cl: string, balance: BigNumberish, blockNumber: BigNumberish, overrides?: CallOverrides): Promise; calculateWritedownFor(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, maxDaysLate: BigNumberish, overrides?: CallOverrides): Promise; lateFeeApplicable(cl: string, blockNumber: BigNumberish, gracePeriodInDays: BigNumberish, overrides?: CallOverrides): Promise; }; }