import * as anchor from "@coral-xyz/anchor";
import { Infer } from "superstruct";
export declare const EVENT_ACCOUNT_WINDOW_SECONDS: number;
export type TokenMessengerV2MessageBody = {
    version: number;
    burnToken: anchor.web3.PublicKey;
    mintRecipient: anchor.web3.PublicKey;
    amount: bigint;
    messageSender: anchor.web3.PublicKey;
    maxFee: bigint;
    feeExecuted: bigint;
    expirationBlock: bigint;
    hookData: Buffer;
};
export type MessageHeaderV2 = {
    version: number;
    sourceDomain: number;
    destinationDomain: number;
    nonce: bigint;
    sender: anchor.web3.PublicKey;
    recipient: anchor.web3.PublicKey;
    destinationCaller: anchor.web3.PublicKey;
    minFinalityThreshold: number;
    finalityThresholdExecuted: number;
    messageBody: Buffer;
};
export declare const decodeMessageSentDataV2: (message: Buffer) => {
    messageBody: TokenMessengerV2MessageBody;
    version: number;
    sourceDomain: number;
    destinationDomain: number;
    nonce: bigint;
    sender: anchor.web3.PublicKey;
    recipient: anchor.web3.PublicKey;
    destinationCaller: anchor.web3.PublicKey;
    minFinalityThreshold: number;
    finalityThresholdExecuted: number;
};
export declare const decodeMessageHeaderV2: (data: Buffer) => MessageHeaderV2;
export declare const decodeTokenMessengerV2MessageBody: (data: Buffer) => TokenMessengerV2MessageBody;
export declare const DecodedMessageBody: import("superstruct").Struct<{
    amount: string;
    mintRecipient: string;
    burnToken: string;
    messageSender: string;
    maxFee?: string | undefined;
    hookData?: string | undefined;
    feeExecuted?: string | undefined;
    expirationBlock?: string | undefined;
}, {
    burnToken: import("superstruct").Struct<string, null>;
    mintRecipient: import("superstruct").Struct<string, null>;
    amount: import("superstruct").Struct<string, null>;
    messageSender: import("superstruct").Struct<string, null>;
    maxFee: import("superstruct").Struct<string | undefined, null>;
    feeExecuted: import("superstruct").Struct<string | undefined, null>;
    expirationBlock: import("superstruct").Struct<string | undefined, null>;
    hookData: import("superstruct").Struct<string | undefined, null>;
}>;
export declare const DecodedMessage: import("superstruct").Struct<{
    recipient: string;
    sender: string;
    messageBody: string;
    nonce: string;
    sourceDomain: string;
    destinationDomain: string;
    destinationCaller: string;
    finalityThresholdExecuted?: string | undefined;
    minFinalityThreshold?: string | undefined;
    decodedMessageBody?: {
        amount: string;
        mintRecipient: string;
        burnToken: string;
        messageSender: string;
        maxFee?: string | undefined;
        hookData?: string | undefined;
        feeExecuted?: string | undefined;
        expirationBlock?: string | undefined;
    } | null | undefined;
}, {
    sourceDomain: import("superstruct").Struct<string, null>;
    destinationDomain: import("superstruct").Struct<string, null>;
    nonce: import("superstruct").Struct<string, null>;
    sender: import("superstruct").Struct<string, null>;
    recipient: import("superstruct").Struct<string, null>;
    destinationCaller: import("superstruct").Struct<string, null>;
    minFinalityThreshold: import("superstruct").Struct<string | undefined, {
        [x: string]: string;
    }>;
    finalityThresholdExecuted: import("superstruct").Struct<string | undefined, {
        [x: string]: string;
    }>;
    messageBody: import("superstruct").Struct<string, null>;
    decodedMessageBody: import("superstruct").Struct<{
        amount: string;
        mintRecipient: string;
        burnToken: string;
        messageSender: string;
        maxFee?: string | undefined;
        hookData?: string | undefined;
        feeExecuted?: string | undefined;
        expirationBlock?: string | undefined;
    } | null | undefined, {
        burnToken: import("superstruct").Struct<string, null>;
        mintRecipient: import("superstruct").Struct<string, null>;
        amount: import("superstruct").Struct<string, null>;
        messageSender: import("superstruct").Struct<string, null>;
        maxFee: import("superstruct").Struct<string | undefined, null>;
        feeExecuted: import("superstruct").Struct<string | undefined, null>;
        expirationBlock: import("superstruct").Struct<string | undefined, null>;
        hookData: import("superstruct").Struct<string | undefined, null>;
    }>;
}>;
export declare const AttestationMessage: import("superstruct").Struct<{
    message: string;
    status: string;
    attestation: string;
    eventNonce: string;
    cctpVersion: number;
    decodedMessage?: {
        recipient: string;
        sender: string;
        messageBody: string;
        nonce: string;
        sourceDomain: string;
        destinationDomain: string;
        destinationCaller: string;
        finalityThresholdExecuted?: string | undefined;
        minFinalityThreshold?: string | undefined;
        decodedMessageBody?: {
            amount: string;
            mintRecipient: string;
            burnToken: string;
            messageSender: string;
            maxFee?: string | undefined;
            hookData?: string | undefined;
            feeExecuted?: string | undefined;
            expirationBlock?: string | undefined;
        } | null | undefined;
    } | null | undefined;
    delayReason?: string | null | undefined;
}, {
    message: import("superstruct").Struct<string, null>;
    eventNonce: import("superstruct").Struct<string, null>;
    attestation: import("superstruct").Struct<string, null>;
    decodedMessage: import("superstruct").Struct<{
        recipient: string;
        sender: string;
        messageBody: string;
        nonce: string;
        sourceDomain: string;
        destinationDomain: string;
        destinationCaller: string;
        finalityThresholdExecuted?: string | undefined;
        minFinalityThreshold?: string | undefined;
        decodedMessageBody?: {
            amount: string;
            mintRecipient: string;
            burnToken: string;
            messageSender: string;
            maxFee?: string | undefined;
            hookData?: string | undefined;
            feeExecuted?: string | undefined;
            expirationBlock?: string | undefined;
        } | null | undefined;
    } | null | undefined, {
        sourceDomain: import("superstruct").Struct<string, null>;
        destinationDomain: import("superstruct").Struct<string, null>;
        nonce: import("superstruct").Struct<string, null>;
        sender: import("superstruct").Struct<string, null>;
        recipient: import("superstruct").Struct<string, null>;
        destinationCaller: import("superstruct").Struct<string, null>;
        minFinalityThreshold: import("superstruct").Struct<string | undefined, {
            [x: string]: string;
        }>;
        finalityThresholdExecuted: import("superstruct").Struct<string | undefined, {
            [x: string]: string;
        }>;
        messageBody: import("superstruct").Struct<string, null>;
        decodedMessageBody: import("superstruct").Struct<{
            amount: string;
            mintRecipient: string;
            burnToken: string;
            messageSender: string;
            maxFee?: string | undefined;
            hookData?: string | undefined;
            feeExecuted?: string | undefined;
            expirationBlock?: string | undefined;
        } | null | undefined, {
            burnToken: import("superstruct").Struct<string, null>;
            mintRecipient: import("superstruct").Struct<string, null>;
            amount: import("superstruct").Struct<string, null>;
            messageSender: import("superstruct").Struct<string, null>;
            maxFee: import("superstruct").Struct<string | undefined, null>;
            feeExecuted: import("superstruct").Struct<string | undefined, null>;
            expirationBlock: import("superstruct").Struct<string | undefined, null>;
            hookData: import("superstruct").Struct<string | undefined, null>;
        }>;
    }>;
    cctpVersion: import("superstruct").Struct<number, {
        [x: number]: number;
    }>;
    status: import("superstruct").Struct<string, {
        [x: string]: string;
    }>;
    delayReason: import("superstruct").Struct<string | null | undefined, {
        [x: string]: string;
    }>;
}>;
export declare const AttestationResponse: import("superstruct").Struct<{
    messages: {
        message: string;
        status: string;
        attestation: string;
        eventNonce: string;
        cctpVersion: number;
        decodedMessage?: {
            recipient: string;
            sender: string;
            messageBody: string;
            nonce: string;
            sourceDomain: string;
            destinationDomain: string;
            destinationCaller: string;
            finalityThresholdExecuted?: string | undefined;
            minFinalityThreshold?: string | undefined;
            decodedMessageBody?: {
                amount: string;
                mintRecipient: string;
                burnToken: string;
                messageSender: string;
                maxFee?: string | undefined;
                hookData?: string | undefined;
                feeExecuted?: string | undefined;
                expirationBlock?: string | undefined;
            } | null | undefined;
        } | null | undefined;
        delayReason?: string | null | undefined;
    }[];
}, {
    messages: import("superstruct").Struct<{
        message: string;
        status: string;
        attestation: string;
        eventNonce: string;
        cctpVersion: number;
        decodedMessage?: {
            recipient: string;
            sender: string;
            messageBody: string;
            nonce: string;
            sourceDomain: string;
            destinationDomain: string;
            destinationCaller: string;
            finalityThresholdExecuted?: string | undefined;
            minFinalityThreshold?: string | undefined;
            decodedMessageBody?: {
                amount: string;
                mintRecipient: string;
                burnToken: string;
                messageSender: string;
                maxFee?: string | undefined;
                hookData?: string | undefined;
                feeExecuted?: string | undefined;
                expirationBlock?: string | undefined;
            } | null | undefined;
        } | null | undefined;
        delayReason?: string | null | undefined;
    }[], import("superstruct").Struct<{
        message: string;
        status: string;
        attestation: string;
        eventNonce: string;
        cctpVersion: number;
        decodedMessage?: {
            recipient: string;
            sender: string;
            messageBody: string;
            nonce: string;
            sourceDomain: string;
            destinationDomain: string;
            destinationCaller: string;
            finalityThresholdExecuted?: string | undefined;
            minFinalityThreshold?: string | undefined;
            decodedMessageBody?: {
                amount: string;
                mintRecipient: string;
                burnToken: string;
                messageSender: string;
                maxFee?: string | undefined;
                hookData?: string | undefined;
                feeExecuted?: string | undefined;
                expirationBlock?: string | undefined;
            } | null | undefined;
        } | null | undefined;
        delayReason?: string | null | undefined;
    }, {
        message: import("superstruct").Struct<string, null>;
        eventNonce: import("superstruct").Struct<string, null>;
        attestation: import("superstruct").Struct<string, null>;
        decodedMessage: import("superstruct").Struct<{
            recipient: string;
            sender: string;
            messageBody: string;
            nonce: string;
            sourceDomain: string;
            destinationDomain: string;
            destinationCaller: string;
            finalityThresholdExecuted?: string | undefined;
            minFinalityThreshold?: string | undefined;
            decodedMessageBody?: {
                amount: string;
                mintRecipient: string;
                burnToken: string;
                messageSender: string;
                maxFee?: string | undefined;
                hookData?: string | undefined;
                feeExecuted?: string | undefined;
                expirationBlock?: string | undefined;
            } | null | undefined;
        } | null | undefined, {
            sourceDomain: import("superstruct").Struct<string, null>;
            destinationDomain: import("superstruct").Struct<string, null>;
            nonce: import("superstruct").Struct<string, null>;
            sender: import("superstruct").Struct<string, null>;
            recipient: import("superstruct").Struct<string, null>;
            destinationCaller: import("superstruct").Struct<string, null>;
            minFinalityThreshold: import("superstruct").Struct<string | undefined, {
                [x: string]: string;
            }>;
            finalityThresholdExecuted: import("superstruct").Struct<string | undefined, {
                [x: string]: string;
            }>;
            messageBody: import("superstruct").Struct<string, null>;
            decodedMessageBody: import("superstruct").Struct<{
                amount: string;
                mintRecipient: string;
                burnToken: string;
                messageSender: string;
                maxFee?: string | undefined;
                hookData?: string | undefined;
                feeExecuted?: string | undefined;
                expirationBlock?: string | undefined;
            } | null | undefined, {
                burnToken: import("superstruct").Struct<string, null>;
                mintRecipient: import("superstruct").Struct<string, null>;
                amount: import("superstruct").Struct<string, null>;
                messageSender: import("superstruct").Struct<string, null>;
                maxFee: import("superstruct").Struct<string | undefined, null>;
                feeExecuted: import("superstruct").Struct<string | undefined, null>;
                expirationBlock: import("superstruct").Struct<string | undefined, null>;
                hookData: import("superstruct").Struct<string | undefined, null>;
            }>;
        }>;
        cctpVersion: import("superstruct").Struct<number, {
            [x: number]: number;
        }>;
        status: import("superstruct").Struct<string, {
            [x: string]: string;
        }>;
        delayReason: import("superstruct").Struct<string | null | undefined, {
            [x: string]: string;
        }>;
    }>>;
}>;
export type TAttestationResponse = Infer<typeof AttestationResponse>;
export type TAttestationMessage = Infer<typeof AttestationMessage>;
export type TDecodedMessage = Infer<typeof DecodedMessage>;
export type TDecodedMessageBody = Infer<typeof DecodedMessageBody>;
export declare function getV2BurnAttestation(txSignature: string, sourceMessageData: Buffer, irisApiUrl: string): Promise<{
    destinationMessage: Buffer;
    attestation: Buffer;
} | null>;
