import * as anchor from "@coral-xyz/anchor";
/**
 * Type for the body of a TokenMessenger message.
 */
export type TokenMessengerMessageBody = {
    version: number;
    burnToken: anchor.web3.PublicKey;
    mintRecipient: anchor.web3.PublicKey;
    amount: bigint;
    messageSender: anchor.web3.PublicKey;
};
/**
 * Type for the header of a CCTP message.
 */
export type MessageHeader = {
    version: number;
    sourceDomain: number;
    destinationDomain: number;
    nonce: bigint;
    sender: anchor.web3.PublicKey;
    recipient: anchor.web3.PublicKey;
    destinationCaller: anchor.web3.PublicKey;
    messageBody: Buffer;
};
/**
 * Decodes a CCTP message into a MessageHeader and TokenMessengerMessageBody.
 */
export declare const decodeMessageSentData: (message: Buffer) => {
    messageBody: TokenMessengerMessageBody;
    version: number;
    sourceDomain: number;
    destinationDomain: number;
    nonce: bigint;
    sender: anchor.web3.PublicKey;
    recipient: anchor.web3.PublicKey;
    destinationCaller: anchor.web3.PublicKey;
};
/**
 * Decodes a CCTP message header.
 */
export declare const decodeMessageHeader: (data: Buffer) => MessageHeader;
/**
 * Decodes a TokenMessenger message body.
 */
export declare const decodeTokenMessengerMessageBody: (data: Buffer) => TokenMessengerMessageBody;
/**
 * Encodes a MessageHeader into a Buffer.
 */
export declare const encodeMessageHeader: (header: MessageHeader) => Buffer;
/**
 * Type for the attestation response from the attestation service.
 */
type AttestationResponse = {
    error?: string;
    messages: {
        attestation: string;
        message: string;
        eventNonce: string;
    }[];
};
/**
 * Fetches attestation from attestation service given the txHash.
 */
export declare const getMessages: (txHash: string, srcDomain: number, irisApiUrl: string) => Promise<AttestationResponse>;
export {};
