import { NetworkWithTokens, Token } from "@layerswap/widget-types"; import type { ExtendedRouteRecord } from "../../stores/extendedRoutesStore"; /** * Produce the source network a swap shows when it came from an extended source * (e.g. Hyperliquid): the extended source's own IDENTITY (name, type, display_name, * logo, tokens) — so the user keeps picking/withdrawing-from "Hyperliquid" — but * with BLOCKCHAIN-SPECIFIC data taken from the REAL network it bridges through * (chain_id, node, explorer templates, metadata, native token). * * This is what lets every consumer stay blind to extended swaps: an explorer link * is just `source_network.transaction_explorer_template` (the real chain where the * input tx settles) while the UI still reads "Hyperliquid" — no real-network lookup. * * Provider-agnostic; returns a NEW object so shared `settings.networks` entries are * never mutated. */ export declare function mergeExtendedSourceNetwork(real: NetworkWithTokens, extended: NetworkWithTokens): NetworkWithTokens; /** * Token counterpart: the extended source's display token (symbol/logo the user * picked, e.g. Hyperliquid USDC). For Hyperliquid both sides are USDC today, so * this is just the extended token — the real token is only used to confirm the * route resolves (see `buildExtendedSourceSkin`). */ export declare function mergeExtendedSourceToken(extended: Token): Token; /** * Build the skinned source network/token for an extended-route record, looking up * both the extended and real networks in settings. Returns undefined when either * side can't be resolved (e.g. settings not loaded) — callers then keep the swap's * real source unchanged. Used by the two fetch tops (active swap + history) so the * skin is applied once and every consumer reads `swap.source_network` directly. */ export declare function buildExtendedSourceSkin(record: ExtendedRouteRecord, networks: NetworkWithTokens[]): { network: NetworkWithTokens; token: Token; } | undefined; //# sourceMappingURL=skin.d.ts.map