import { BigNumber } from 'ethers';
import { Address, Domain, HexString, ParsedMessage, ParsedWarpRouteMessage } from './types.js';
/**
 * JS Implementation of solidity/contracts/libs/Message.sol#formatMessage
 * @returns Hex string of the packed message
 */
export declare const formatMessage: (version: number | BigNumber, nonce: number | BigNumber, originDomain: Domain, senderAddr: Address, destinationDomain: Domain, recipientAddr: Address, body: HexString) => HexString;
/**
 * Get ID given message bytes
 * @param message Hex string of the packed message (see formatMessage)
 * @returns Hex string of message id
 */
export declare function messageId(message: HexString): HexString;
/**
 * Parse a serialized Hyperlane message from raw bytes.
 *
 * @param message
 * @returns
 */
export declare function parseMessage(message: string): ParsedMessage;
export declare function parseWarpRouteMessage(messageBody: string): ParsedWarpRouteMessage;
export type StandardHookMetadataParams = {
    refundAddress?: Address;
    msgValue?: bigint;
    gasLimit?: bigint;
};
/**
 * JS Implementation of solidity/contracts/hooks/libs/StandardHookMetadata.sol#formatMetadata
 * @returns Hex string of the packed hook metadata
 */
export declare function formatStandardHookMetadata({ refundAddress, msgValue, gasLimit, }: StandardHookMetadataParams): HexString;
/**
 * Parse StandardHookMetadata bytes into its components.
 * @returns Parsed metadata or null if invalid
 */
export declare function parseStandardHookMetadata(metadata?: HexString): Required<StandardHookMetadataParams> | null;
export declare function extractRefundAddressFromMetadata(metadata?: HexString): Address | null;
export declare function hasValidRefundAddress(metadata?: HexString): boolean;
/**
 * Compute the synthetic message ID the scraper stores for a same-chain CCR swap.
 *
 * Format: `0x00000000 || keccak256("SameChainCCR" || txHash32 || logIndex8)[0..28]`
 *
 * The 4-byte zero prefix makes synthetic IDs immediately distinguishable from
 * real Hyperlane message IDs (which are uniform keccak256 outputs).
 *
 * @param txHash  32-byte transaction hash (0x-prefixed hex string)
 * @param logIndex  log index of the ReceivedTransferRemote event
 */
export declare function syntheticCcrSwapMessageId(txHash: HexString, logIndex: bigint | number): HexString;
//# sourceMappingURL=messages.d.ts.map