import { type Address, type Instruction, type InstructionWithData, type ReadonlyUint8Array } from "@solana/kit";
import { type ParsedAcceptOwnershipInstruction, type ParsedDisableAttesterInstruction, type ParsedEnableAttesterInstruction, type ParsedGetNoncePdaInstruction, type ParsedInitializeInstruction, type ParsedIsNonceUsedInstruction, type ParsedPauseInstruction, type ParsedReceiveMessageInstruction, type ParsedReclaimEventAccountInstruction, type ParsedReplaceMessageInstruction, type ParsedSendMessageInstruction, type ParsedSendMessageWithCallerInstruction, type ParsedSetMaxMessageBodySizeInstruction, type ParsedSetSignatureThresholdInstruction, type ParsedTransferOwnershipInstruction, type ParsedUnpauseInstruction, type ParsedUpdateAttesterManagerInstruction, type ParsedUpdatePauserInstruction } from "../instructions";
export declare const MESSAGE_TRANSMITTER_PROGRAM_ADDRESS: Address<"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd">;
export declare enum MessageTransmitterAccount {
    MessageSent = 0,
    MessageTransmitter = 1,
    UsedNonces = 2
}
export declare function identifyMessageTransmitterAccount(account: {
    data: ReadonlyUint8Array;
} | ReadonlyUint8Array): MessageTransmitterAccount;
export declare enum MessageTransmitterInstruction {
    Initialize = 0,
    TransferOwnership = 1,
    AcceptOwnership = 2,
    UpdatePauser = 3,
    UpdateAttesterManager = 4,
    Pause = 5,
    Unpause = 6,
    SetMaxMessageBodySize = 7,
    EnableAttester = 8,
    DisableAttester = 9,
    SetSignatureThreshold = 10,
    SendMessage = 11,
    SendMessageWithCaller = 12,
    ReplaceMessage = 13,
    ReceiveMessage = 14,
    ReclaimEventAccount = 15,
    GetNoncePda = 16,
    IsNonceUsed = 17
}
export declare function identifyMessageTransmitterInstruction(instruction: {
    data: ReadonlyUint8Array;
} | ReadonlyUint8Array): MessageTransmitterInstruction;
export type ParsedMessageTransmitterInstruction<TProgram extends string = "CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd"> = ({
    instructionType: MessageTransmitterInstruction.Initialize;
} & ParsedInitializeInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.TransferOwnership;
} & ParsedTransferOwnershipInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.AcceptOwnership;
} & ParsedAcceptOwnershipInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.UpdatePauser;
} & ParsedUpdatePauserInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.UpdateAttesterManager;
} & ParsedUpdateAttesterManagerInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.Pause;
} & ParsedPauseInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.Unpause;
} & ParsedUnpauseInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.SetMaxMessageBodySize;
} & ParsedSetMaxMessageBodySizeInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.EnableAttester;
} & ParsedEnableAttesterInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.DisableAttester;
} & ParsedDisableAttesterInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.SetSignatureThreshold;
} & ParsedSetSignatureThresholdInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.SendMessage;
} & ParsedSendMessageInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.SendMessageWithCaller;
} & ParsedSendMessageWithCallerInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.ReplaceMessage;
} & ParsedReplaceMessageInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.ReceiveMessage;
} & ParsedReceiveMessageInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.ReclaimEventAccount;
} & ParsedReclaimEventAccountInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.GetNoncePda;
} & ParsedGetNoncePdaInstruction<TProgram>) | ({
    instructionType: MessageTransmitterInstruction.IsNonceUsed;
} & ParsedIsNonceUsedInstruction<TProgram>);
export declare function parseMessageTransmitterInstruction<TProgram extends string>(instruction: Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array>): ParsedMessageTransmitterInstruction<TProgram>;
