import type { CrosschainBlockchainRef, CrosschainInnerMessage, CrosschainPoolRef, CrosschainTokenRef } from './crosschainMessages.js'; /** * Context used to enrich a cross-chain message description with human-readable * pool/token/destination labels. All fields are optional; when a label cannot be * resolved a `[??]` placeholder is used instead. * * These mirror the joined references returned on a {@link CrosschainMessage} * (`message.pool`, `message.token`, `message.toBlockchain`), so the typical call * site forwards them straight from the envelope: * * ```ts * describeCrosschainMessage(inner, { * pool: message.pool, * token: message.token, * toBlockchain: message.toBlockchain, * }) * ``` */ export type CrosschainMessageDescriptionContext = { pool?: Partial; token?: Partial; toBlockchain?: Partial; /** * Decimals used to scale share amounts (e.g. for transfer messages). * @defaultValue 18 */ tokenDecimals?: number; }; /** Minimal shape needed to describe a message: just its decoded `data` and type. */ export type DescribableCrosschainMessage = Pick; /** * Whether {@link describeCrosschainMessage} produces a fully resolved, user-facing * description for a given message type. Types not yet fully implemented return a * best-effort placeholder; callers may use this flag to hide or flag those rows. */ export declare const CROSSCHAIN_MESSAGE_DESCRIPTION_COMPLETE: Record; /** * Returns `true` when a fully resolved description is available for `messageType`. * @see CROSSCHAIN_MESSAGE_DESCRIPTION_COMPLETE */ export declare function isCrosschainMessageDescriptionComplete(messageType: string): boolean; /** * Turns a cross-chain message into a short, human-readable description, e.g. * `"Update USDC price to 1.000000"` or `"Deploy pool Anemoy"`. * * The message's `data` is the decoded payload as returned by the indexer * (`CrosschainInnerMessage.data`). Pool/token/destination labels come from the * optional {@link CrosschainMessageDescriptionContext}. * * Some message types are not yet fully resolved and return a best-effort * placeholder — use {@link isCrosschainMessageDescriptionComplete} to detect them. */ export declare function describeCrosschainMessage(message: DescribableCrosschainMessage, context?: CrosschainMessageDescriptionContext): string; //# sourceMappingURL=crosschainMessageDescription.d.ts.map