import type { CallFees } from '@relayprotocol/relay-sdk';
import type { Logger } from './types';
export interface FunRelayFeeItem {
    b: number;
    v: number;
    config: {
        options: Record<string, unknown>;
    };
    headers: Record<string, string>;
}
export declare function getFunRelayFees({ clientId, estUsdValue, fromTokenAddress, fromChainId, recipientAddress, senderAddress, toTokenAddress, toChainId, usePermit, }: {
    clientId: string;
    estUsdValue: number;
    fromTokenAddress: string;
    fromChainId: string;
    recipientAddress: string | undefined;
    senderAddress: string | undefined;
    toTokenAddress: string;
    toChainId: string;
    /**
     * Optional explicit user preference for the source-side authorization
     * step. Forwarded to frog as a query param so its `getUsePermit` can
     * honor the FE toggle's choice. When omitted, frog falls back to its
     * legacy auto-gasless decision based on (client, chain, token, gas).
     */
    usePermit?: boolean;
}): Promise<FunRelayFeeItem>;
export declare function parseRelayFees({ fees, fromChainIdRelay, fromTokenAddressRelay, logger, sourceAssetDecimals, sourceUnitPrice, }: {
    fees: CallFees | undefined;
    fromChainIdRelay: number;
    fromTokenAddressRelay: string;
    logger: Logger;
    sourceAssetDecimals: number;
    sourceUnitPrice: number;
}): {
    relayGasFeesUsd: number;
    totalLpFeesUsd: number;
    totalFeesUsd: number;
    totalFeesFromAmount: number;
    totalFeesFromAmountBaseUnit: bigint;
};
//# sourceMappingURL=fees.d.ts.map