import type { FeeBreakdownV2 } from '@funkit/api-base';
import type { RelayExecute, RelayQuote } from '@funkit/fun-relay';
export type RelayQuoteMetadata = {
    relayQuote: RelayQuote['metadata']['relayQuote'];
    feeBreakdown?: FeeBreakdownV2;
};
export declare function extractRelayFeeInfo(quoteV2: {
    [x: string]: unknown;
} | undefined): FeeBreakdownV2;
type RelayQuoteDetails = NonNullable<RelayExecute['details']>;
/** Checks if input and output are the same token on the same chain. */
export declare function isRelayQuoteSameChainAndAsset(details: RelayQuoteDetails): boolean;
/** Checks if the quote is a native token wrap (e.g., ETH → WETH). */
export declare function isRelayQuoteWrapOperation(details: RelayQuoteDetails): boolean;
/** Checks if the quote has a 1:1 exchange rate (no price conversion). */
export declare function hasRelayQuoteUnitRate(details: RelayQuoteDetails): boolean;
/**
 * Checks if Relay is acting as a passthrough (no solver, no fees).
 * True when the quote has a 1:1 rate AND is either a same-chain/same-asset
 * transfer or a native token wrap operation.
 */
export declare function isRelayPassthrough(details: RelayQuoteDetails): boolean;
export {};
