import { Provider } from '@ethersproject/abstract-provider'; import { Signer } from 'ethers'; import { SdkConfig } from '../../sdk-config'; import { NftBoostDirectus, PlatformOverviewDirectus } from './directus-types'; import { LendingPoolConfigurationSubgraph, LendingPoolSubgraph } from './subgraph-types'; import { BadAndDoubtfulDebts, FinancialReportingDocuments, LendingTotals, PoolCreditMetrics, PoolDelegateProfileAndHistory, PoolOverview, PoolRepayment, PoolTranche, RiskManagement } from './types'; export declare class DataService { private _kasuConfig; private readonly _graph; private readonly _externalTvlAbi; private readonly _directus; private _directusPoolOverview; constructor(_kasuConfig: SdkConfig, signerOrProvider: Signer | Provider); private getUrlFromFile; /** * Maps a pool ID to its metadata source pool ID. * Used for chains (XDC, Plume) that share Directus metadata with Base pools. */ private getMetadataPoolId; /** * Maps an array of pool IDs to their metadata source pool IDs. */ private getMetadataPoolIds; calculatePoolCapacity(poolCapacities: number[], poolCapacityPercentages: number[], index: number, spillOver: number, lendingPoolSubgraph: LendingPoolSubgraph, lendingPoolConfig: LendingPoolConfigurationSubgraph): { poolCapacity: number[]; poolCapacityPercentage: number[]; }; /** * The subgraph's per-epoch `interestRate` compounded into an APY. * Unchanged arithmetic — `EPOCHS_IN_YEAR` and the formula now come from * `domain/rates` so this file and `KSULocking` cannot drift apart. */ calculateApyForTranche(interestRate: string): number; getPlatformOverview(): Promise; getNftBoost(): Promise>; getOffChainTvl(poolIds: string[]): Promise>; getPoolOverview(epochId: string, id_in?: string[]): Promise; getPerformanceFee(): Promise; getRiskManagement(id_in?: string[]): Promise; getPoolDelegateProfileAndHistory(id_in?: string[]): Promise; getPoolTranches(epochId: string, id_in?: string[]): Promise; getBadAndDoubtfulDebts(id_in?: string[]): Promise; getPoolCreditMetrics(id_in?: string[]): Promise; getFinancialReportingDocuments(id_in?: string[]): Promise; getRepayments(id_in?: string[]): Promise; getLendingTotals(poolOverviews: PoolOverview[]): Promise; calculateCompounding(amount: number, epochInterestRate: number, daysInvested: number, interestFee: number): number[]; calculateBonusInterestEarnings(earnedAmounts: number[], amount: number, bonusEpochInterest: number): number[]; }