import type { BalanceData, AprData, LenderConfigMap, PostTradeMetrics } from './utils';
import type { LenderYields } from '../../../types/lenderTypes';
import type { SumerPositionInput } from './sumer/types';
/**
 * Unified borrow operation for all lending protocols.
 *
 * Routes to the appropriate implementation based on the lender type:
 * - Sumer: Uses waterfall absorption model
 * - Standard: Uses standard collateral factor model (Aave, Compound, Venus, etc.)
 *
 * @param lender - The lender protocol identifier (e.g., 'AAVE_V3', 'SUMER')
 * @param amount - The token amount to borrow
 * @param price - The USD price of the token
 * @param balanceData - Current balance state
 * @param config - (Standard only) Lender configuration map
 * @param modeId - (Standard only) Mode/category ID
 * @param targetMarketUid - (Sumer only) Target market UID
 * @param positions - (Sumer only) Array of all Sumer positions
 * @param apr - Optional current APR data
 * @param yieldParams - Optional yield parameters for APR calculation
 * @param irMode - Interest rate mode (1=stable, 2=variable)
 */
export declare function computeBorrowDelta(lender: string, amount: number, price: number, balanceData: BalanceData, config?: LenderConfigMap, modeId?: string, apr?: AprData, yieldParams?: LenderYields, irMode?: number, targetMarketUid?: string, positions?: SumerPositionInput[]): PostTradeMetrics;
//# sourceMappingURL=borrow.d.ts.map