/** * Funding rate normalization. * * Exchange funding rate periods: * - Hyperliquid: per 1 HOUR (settles every 1h) * - Pacifica: per 1 HOUR (settles every 1h) * - Lighter: per 8 HOURS (API returns 8h rate, settles every 1h) * * HIP-3 deployed dexes on Hyperliquid use 8h funding periods. * * To compare rates across exchanges, we normalize everything to * a per-hour basis, then annualize from there. */ /** * Get funding period in hours for an exchange. * HIP-3 deployed dexes (not in the map) default to 1h (API returns hourly). * HL and PAC are 1h, Lighter API returns 8h rates. */ export declare function getFundingHours(exchange: string): number; /** Convert a raw funding rate to per-hour rate */ export declare function toHourlyRate(rate: number, exchange: string): number; /** Annualize a raw rate from a specific exchange */ export declare function annualizeRate(rate: number, exchange: string): number; /** Annualize an already-normalized hourly rate (no exchange conversion needed) */ export declare function annualizeHourlyRate(hourlyRate: number): number; /** * Compute annualized spread between two exchange rates. * Normalizes both to hourly before comparing. */ export declare function computeAnnualSpread(rateA: number, exchangeA: string, rateB: number, exchangeB: string): number; /** * Compute SIGNED annualized spread for an existing arb position. * Positive = favorable (short receiving more than long paying). * Negative = unfavorable (funding flipped, position losing on funding). * * For spot-perp: pass longRate=0, longExchange=shortExchange (spot has no funding). */ export declare function computeSignedAnnualSpread(shortRate: number, shortExchange: string, longRate: number, longExchange: string): number; /** * Estimate hourly funding payment for a position. * @param rate - raw funding rate from the exchange * @param exchange - exchange name * @param positionUsd - position notional in USD * @param side - "long" or "short" (longs pay positive rate, shorts receive) * @returns hourly payment in USD (positive = you pay, negative = you receive) */ export declare function estimateHourlyFunding(rate: number, exchange: string, positionUsd: number, side: "long" | "short"): number;