/**
 * This code was AUTOGENERATED using the codama library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun codama to update it.
 *
 * @see https://github.com/codama-idl/codama
 */
import { type Address, type ReadonlyUint8Array } from '@solana/kit';
import { type ParsedAcceptOwnershipInstruction, type ParsedAddLocalTokenInstruction, type ParsedAddRemoteTokenMessengerInstruction, type ParsedBurnTokenCustodyInstruction, type ParsedDenylistAccountInstruction, type ParsedDepositForBurnInstruction, type ParsedDepositForBurnWithHookInstruction, type ParsedHandleReceiveFinalizedMessageInstruction, type ParsedHandleReceiveUnfinalizedMessageInstruction, type ParsedInitializeInstruction, type ParsedLinkTokenPairInstruction, type ParsedPauseInstruction, type ParsedRemoveLocalTokenInstruction, type ParsedRemoveRemoteTokenMessengerInstruction, type ParsedSetFeeRecipientInstruction, type ParsedSetMaxBurnAmountPerMessageInstruction, type ParsedSetMinFeeControllerInstruction, type ParsedSetMinFeeInstruction, type ParsedSetTokenControllerInstruction, type ParsedTransferOwnershipInstruction, type ParsedUndenylistAccountInstruction, type ParsedUnlinkTokenPairInstruction, type ParsedUnpauseInstruction, type ParsedUpdateDenylisterInstruction, type ParsedUpdatePauserInstruction } from '../instructions';
export declare const TOKEN_MESSENGER_MINTER_V2_PROGRAM_ADDRESS: Address<"CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe">;
export declare enum TokenMessengerMinterV2Account {
    DenylistedAccount = 0,
    LocalToken = 1,
    MessageTransmitter = 2,
    RemoteTokenMessenger = 3,
    TokenMessenger = 4,
    TokenMinter = 5,
    TokenPair = 6
}
export declare function identifyTokenMessengerMinterV2Account(account: {
    data: ReadonlyUint8Array;
} | ReadonlyUint8Array): TokenMessengerMinterV2Account;
export declare enum TokenMessengerMinterV2Instruction {
    AcceptOwnership = 0,
    AddLocalToken = 1,
    AddRemoteTokenMessenger = 2,
    BurnTokenCustody = 3,
    DenylistAccount = 4,
    DepositForBurn = 5,
    DepositForBurnWithHook = 6,
    HandleReceiveFinalizedMessage = 7,
    HandleReceiveUnfinalizedMessage = 8,
    Initialize = 9,
    LinkTokenPair = 10,
    Pause = 11,
    RemoveLocalToken = 12,
    RemoveRemoteTokenMessenger = 13,
    SetFeeRecipient = 14,
    SetMaxBurnAmountPerMessage = 15,
    SetMinFee = 16,
    SetMinFeeController = 17,
    SetTokenController = 18,
    TransferOwnership = 19,
    UndenylistAccount = 20,
    UnlinkTokenPair = 21,
    Unpause = 22,
    UpdateDenylister = 23,
    UpdatePauser = 24
}
export declare function identifyTokenMessengerMinterV2Instruction(instruction: {
    data: ReadonlyUint8Array;
} | ReadonlyUint8Array): TokenMessengerMinterV2Instruction;
export type ParsedTokenMessengerMinterV2Instruction<TProgram extends string = 'CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe'> = ({
    instructionType: TokenMessengerMinterV2Instruction.AcceptOwnership;
} & ParsedAcceptOwnershipInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.AddLocalToken;
} & ParsedAddLocalTokenInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.AddRemoteTokenMessenger;
} & ParsedAddRemoteTokenMessengerInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.BurnTokenCustody;
} & ParsedBurnTokenCustodyInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.DenylistAccount;
} & ParsedDenylistAccountInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.DepositForBurn;
} & ParsedDepositForBurnInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.DepositForBurnWithHook;
} & ParsedDepositForBurnWithHookInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.HandleReceiveFinalizedMessage;
} & ParsedHandleReceiveFinalizedMessageInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.HandleReceiveUnfinalizedMessage;
} & ParsedHandleReceiveUnfinalizedMessageInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.Initialize;
} & ParsedInitializeInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.LinkTokenPair;
} & ParsedLinkTokenPairInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.Pause;
} & ParsedPauseInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.RemoveLocalToken;
} & ParsedRemoveLocalTokenInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.RemoveRemoteTokenMessenger;
} & ParsedRemoveRemoteTokenMessengerInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.SetFeeRecipient;
} & ParsedSetFeeRecipientInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.SetMaxBurnAmountPerMessage;
} & ParsedSetMaxBurnAmountPerMessageInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.SetMinFee;
} & ParsedSetMinFeeInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.SetMinFeeController;
} & ParsedSetMinFeeControllerInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.SetTokenController;
} & ParsedSetTokenControllerInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.TransferOwnership;
} & ParsedTransferOwnershipInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.UndenylistAccount;
} & ParsedUndenylistAccountInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.UnlinkTokenPair;
} & ParsedUnlinkTokenPairInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.Unpause;
} & ParsedUnpauseInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.UpdateDenylister;
} & ParsedUpdateDenylisterInstruction<TProgram>) | ({
    instructionType: TokenMessengerMinterV2Instruction.UpdatePauser;
} & ParsedUpdatePauserInstruction<TProgram>);
