import type { IFundingFees } from "../../../contracts/types/generated/GNSMultiCollatDiamond"; import { BorrowingFeeV2 } from "."; /** * @dev Converts contract BorrowingFeeParams to SDK type * @param contractParams Contract borrowing fee params from IFundingFees.BorrowingFeeParams * @returns SDK BorrowingFeeParams */ export declare const convertBorrowingFeeParams: (contractParams: IFundingFees.BorrowingFeeParamsStructOutput) => BorrowingFeeV2.BorrowingFeeParams; /** * @dev Converts array of contract BorrowingFeeParams to SDK types * @param contractParamsArray Array of contract borrowing fee params * @returns Array of SDK BorrowingFeeParams */ export declare const convertBorrowingFeeParamsArray: (contractParamsArray: IFundingFees.BorrowingFeeParamsStructOutput[]) => BorrowingFeeV2.BorrowingFeeParams[]; /** * @dev Converts contract PairBorrowingFeeData to SDK type * @param contractData Contract pair borrowing fee data from IFundingFees.PairBorrowingFeeData * @returns SDK PairBorrowingFeeData */ export declare const convertPairBorrowingFeeData: (contractData: IFundingFees.PairBorrowingFeeDataStructOutput) => BorrowingFeeV2.PairBorrowingFeeData; /** * @dev Converts array of contract PairBorrowingFeeData to SDK types * @param contractDataArray Array of contract pair borrowing fee data * @returns Array of SDK PairBorrowingFeeData */ export declare const convertPairBorrowingFeeDataArray: (contractDataArray: IFundingFees.PairBorrowingFeeDataStructOutput[]) => BorrowingFeeV2.PairBorrowingFeeData[]; /** * @dev Converts contract TradeFeesData to SDK TradeInitialAccFees * @param contractTradeData Contract trade fees data from IFundingFees.TradeFeesData * @returns SDK TradeInitialAccFees */ export declare const convertTradeInitialAccFees: (contractTradeData: IFundingFees.TradeFeesDataStructOutput) => BorrowingFeeV2.TradeInitialAccFees; /** * @dev Converts array of contract TradeFeesData to SDK TradeInitialAccFees * @param contractTradeDataArray Array of contract trade fees data * @returns Array of SDK TradeInitialAccFees */ export declare const convertTradeInitialAccFeesArray: (contractTradeDataArray: IFundingFees.TradeFeesDataStructOutput[]) => BorrowingFeeV2.TradeInitialAccFees[]; /** * @dev Creates a context object from contract data arrays * @param pairIndices Array of pair indices * @param borrowingParams Array of borrowing fee params from contract * @param borrowingData Array of pair borrowing fee data from contract * @param currentTimestamp Optional current timestamp * @returns Complete SDK context for borrowing v2 calculations (collateral-scoped) */ export declare const createBorrowingV2Context: (pairIndices: number[], borrowingParams: IFundingFees.BorrowingFeeParamsStructOutput[], borrowingData: IFundingFees.PairBorrowingFeeDataStructOutput[], currentTimestamp?: number) => BorrowingFeeV2.GetBorrowingFeeV2Context; /** * @dev Helper function to validate borrowing rate per second * @param borrowingRatePerSecondP Borrowing rate per second (normalized float) * @returns True if rate is within valid bounds */ export declare const isValidBorrowingRate: (borrowingRatePerSecondP: number) => boolean; /** * @dev Helper function to convert borrowing rate to APR percentage * @param borrowingRatePerSecondP Borrowing rate per second (normalized float) * @returns APR as percentage (e.g., 10.5 for 10.5% APR) */ export declare const borrowingRateToAPR: (borrowingRatePerSecondP: number) => number; /** * @dev Helper function to convert APR percentage to borrowing rate per second * @param aprPercentage APR as percentage (e.g., 10.5 for 10.5% APR) * @returns Borrowing rate per second (normalized float) */ export declare const aprToBorrowingRate: (aprPercentage: number) => number; /** * @dev Creates a collateral-scoped context from frontend data structure * @param collateralBorrowingData Data structure from frontend (params and data arrays) * @param currentTimestamp Optional current timestamp * @returns Collateral-scoped borrowing fee v2 context */ export declare const createCollateralScopedBorrowingContext: (collateralBorrowingData: { params: BorrowingFeeV2.BorrowingFeeParams[]; data: BorrowingFeeV2.PairBorrowingFeeData[]; }, currentTimestamp?: number) => BorrowingFeeV2.GetBorrowingFeeV2Context;