import { FeeTiers, TraderFeeTiers } from "../../types"; import { FeeTier } from "./types"; export * from "./types"; export * from "./converter"; export declare const TRAILING_PERIOD_DAYS = 30; export declare const FEE_MULTIPLIER_SCALE = 1; export declare const MAX_FEE_TIERS = 8; export declare const GNS_STAKING_COOLDOWN_SECONDS = 86400; export declare const getCurrentDay: () => number; export declare const getFeeTiersCount: (feeTiers: FeeTier[]) => number; export declare const getFeeMultiplier: (trailingPoints: number, tiers: FeeTier[]) => number; export declare const computeFeeMultiplier: (feeTiers: FeeTiers, traderFeeTiers: TraderFeeTiers) => { feeMultiplier: number; volumeFeeMultiplier: number; trailingPoints: number; stakingFeeMultiplier: number; }; /** * @dev Calculates the final fee amount after applying the trader's fee tier discount * @dev Mirrors the contract's calculateFeeAmount function * @param trader The address of the trader (not used in SDK, for consistency) * @param normalFeeAmountCollateral The base fee amount before any discounts * @param feeMultiplier The trader's fee multiplier (e.g., 0.8 = 80% of normal fee) * @returns The final fee amount after applying discount */ export declare const calculateFeeAmount: (trader: string, normalFeeAmountCollateral: number, feeMultiplier?: number) => number; /** * @dev Helper function to get trader's fee multiplier from volume and staking fee tiers data * @param feeTiers System fee tiers configuration * @param traderFeeTiers Trader's fee tier data * @returns Fee multiplier (1e3 precision) */ export declare const getTraderFeeMultiplier: (feeTiers: FeeTiers, traderFeeTiers: TraderFeeTiers) => number; export declare const isGnsStakingCooldownActive: (traderFeeTiers: TraderFeeTiers) => { isActive: boolean; expiryTs: number; }; /** * @dev Helper function to get the fee multiplier based on GNS and gGNS amounts. Useful to estimate fee multiplier after staking/unstaking. * @param amountGns Amount of GNS staked * @param amountGGns Amount of gGNS staked * @param bonusAmount GNS bonus amount * @param stakingTiers Array of staking fee tiers * @param gGnsPrice Conversion ratio from gGNS to GNS (e.g., 0.8 means 1 gGNS = 0.8 GNS, 1.1 means 1 gGNS = 1.1 GNS); Defaults to 1 (e.g., 1 gGNS = 1 GNS) */ export declare const getStakingFeeMultiplier: (amountGns: number, amountGGns: number, bonusAmount: number, stakingTiers: FeeTier[], gGnsPrice?: number) => number;