///
import type { GNSMultiCollatDiamond } from "../../../contracts/types/generated";
import { BorrowingFeeV2 } from ".";
/**
* @dev Fetches borrowing fee parameters v2 for specific pairs
* @param contract GNSMultiCollatDiamond contract instance
* @param collateralIndices Array of collateral indices
* @param pairIndices Array of pair indices
* @returns Promise resolving to array of borrowing fee parameters
*/
export declare const fetchBorrowingFeeParamsV2: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[]) => Promise;
/**
* @dev Fetches pair borrowing fee data v2 for specific pairs
* @param contract GNSMultiCollatDiamond contract instance
* @param collateralIndices Array of collateral indices
* @param pairIndices Array of pair indices
* @returns Promise resolving to array of pair borrowing fee data
*/
export declare const fetchPairBorrowingFeeDataV2: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[]) => Promise;
/**
* @dev Fetches borrowing fees in collateral tokens for a specific trade
* @param contract GNSMultiCollatDiamond contract instance
* @param trader Address of the trader
* @param index Trade index
* @param currentPairPrice Current price of the trading pair (1e6 precision)
* @returns Promise resolving to borrowing fees in collateral tokens
*/
export declare const fetchTradeBorrowingFeesCollateralV2: (contract: GNSMultiCollatDiamond, trader: string, index: number, currentPairPrice: number) => Promise;
/**
* @dev Fetches pending accumulated borrowing fees for a specific pair
* @param contract GNSMultiCollatDiamond contract instance
* @param collateralIndex Index of the collateral
* @param pairIndex Index of the trading pair
* @param currentPairPrice Current price of the trading pair (1e6 precision)
* @returns Promise resolving to pending accumulated borrowing fee
*/
export declare const fetchPairPendingAccBorrowingFeesV2: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndex: number, currentPairPrice: number) => Promise;
/**
* @dev Convenience function to fetch all borrowing v2 data for specific pairs
* @param contract GNSMultiCollatDiamond contract instance
* @param collateralIndex Index of the collateral
* @param pairIndices Array of pair indices
* @returns Promise resolving to complete borrowing v2 data set
*/
export declare const fetchAllBorrowingV2Data: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndices: number[]) => Promise<{
params: BorrowingFeeV2.BorrowingFeeParams[];
data: BorrowingFeeV2.PairBorrowingFeeData[];
context: BorrowingFeeV2.GetBorrowingFeeV2Context;
}>;
/**
* @dev Creates a complete borrowing v2 context from contract data
* @param contract GNSMultiCollatDiamond contract instance
* @param collateralIndex Index of the collateral
* @param pairIndices Array of pair indices
* @param currentTimestamp Optional current timestamp for calculations
* @returns Promise resolving to complete borrowing v2 context
*/
export declare const createBorrowingV2ContextFromContract: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndices: number[], currentTimestamp?: number) => Promise;
/**
* @dev Helper function to create context from already fetched arrays
* @param collateralIndices Array of collateral indices
* @param pairIndices Array of pair indices
* @param params Array of borrowing fee parameters
* @param data Array of pair borrowing fee data
* @param currentTimestamp Optional current timestamp
* @returns Complete borrowing v2 context
*/
export declare const createBorrowingV2ContextFromArrays: (collateralIndices: number[], pairIndices: number[], params: BorrowingFeeV2.BorrowingFeeParams[], data: BorrowingFeeV2.PairBorrowingFeeData[], currentTimestamp?: number) => BorrowingFeeV2.GetBorrowingFeeV2Context;
/**
* @dev Fetches borrowing v2 data for multiple collateral/pair combinations
* @param contract GNSMultiCollatDiamond contract instance
* @param collateralIndices Array of collateral indices
* @param pairIndices Array of pair indices (must match collateralIndices length)
* @returns Promise resolving to complete borrowing v2 context
*/
export declare const fetchBorrowingV2DataForPairs: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[]) => Promise;