/**
 * 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 ParsedBridgeTokensToHubPoolInstruction, type ParsedClaimRelayerRefundInstruction, type ParsedCloseClaimAccountInstruction, type ParsedCloseFillPdaInstruction, type ParsedCloseInstructionParamsInstruction, type ParsedCreateTokenAccountsInstruction, type ParsedDepositInstruction, type ParsedDepositNowInstruction, type ParsedEmergencyDeleteRootBundleInstruction, type ParsedExecuteRelayerRefundLeafDeferredInstruction, type ParsedExecuteRelayerRefundLeafInstruction, type ParsedExecuteSlowRelayLeafInstruction, type ParsedFillRelayInstruction, type ParsedGetUnsafeDepositIdInstruction, type ParsedHandleReceiveMessageInstruction, type ParsedInitializeClaimAccountInstruction, type ParsedInitializeInstruction, type ParsedInitializeInstructionParamsInstruction, type ParsedPauseDepositsInstruction, type ParsedPauseFillsInstruction, type ParsedRelayRootBundleInstruction, type ParsedRequestSlowFillInstruction, type ParsedSetCrossDomainAdminInstruction, type ParsedSetCurrentTimeInstruction, type ParsedSetEnableRouteInstruction, type ParsedTransferOwnershipInstruction, type ParsedUnsafeDepositInstruction, type ParsedWriteInstructionParamsFragmentInstruction } from '../instructions';
export declare const SVM_SPOKE_PROGRAM_ADDRESS: Address<"JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq">;
export declare enum SvmSpokeAccount {
    ClaimAccount = 0,
    ExecuteRelayerRefundLeafParams = 1,
    ExecuteSlowRelayLeafParams = 2,
    FillRelayParams = 3,
    FillStatusAccount = 4,
    RequestSlowFillParams = 5,
    RootBundle = 6,
    Route = 7,
    State = 8,
    TransferLiability = 9
}
export declare function identifySvmSpokeAccount(account: {
    data: ReadonlyUint8Array;
} | ReadonlyUint8Array): SvmSpokeAccount;
export declare enum SvmSpokeInstruction {
    BridgeTokensToHubPool = 0,
    ClaimRelayerRefund = 1,
    CloseClaimAccount = 2,
    CloseFillPda = 3,
    CloseInstructionParams = 4,
    CreateTokenAccounts = 5,
    Deposit = 6,
    DepositNow = 7,
    EmergencyDeleteRootBundle = 8,
    ExecuteRelayerRefundLeaf = 9,
    ExecuteRelayerRefundLeafDeferred = 10,
    ExecuteSlowRelayLeaf = 11,
    FillRelay = 12,
    GetUnsafeDepositId = 13,
    HandleReceiveMessage = 14,
    Initialize = 15,
    InitializeClaimAccount = 16,
    InitializeInstructionParams = 17,
    PauseDeposits = 18,
    PauseFills = 19,
    RelayRootBundle = 20,
    RequestSlowFill = 21,
    SetCrossDomainAdmin = 22,
    SetCurrentTime = 23,
    SetEnableRoute = 24,
    TransferOwnership = 25,
    UnsafeDeposit = 26,
    WriteInstructionParamsFragment = 27
}
export declare function identifySvmSpokeInstruction(instruction: {
    data: ReadonlyUint8Array;
} | ReadonlyUint8Array): SvmSpokeInstruction;
export type ParsedSvmSpokeInstruction<TProgram extends string = 'JAZWcGrpSWNPTBj8QtJ9UyQqhJCDhG9GJkDeMf5NQBiq'> = ({
    instructionType: SvmSpokeInstruction.BridgeTokensToHubPool;
} & ParsedBridgeTokensToHubPoolInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.ClaimRelayerRefund;
} & ParsedClaimRelayerRefundInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.CloseClaimAccount;
} & ParsedCloseClaimAccountInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.CloseFillPda;
} & ParsedCloseFillPdaInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.CloseInstructionParams;
} & ParsedCloseInstructionParamsInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.CreateTokenAccounts;
} & ParsedCreateTokenAccountsInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.Deposit;
} & ParsedDepositInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.DepositNow;
} & ParsedDepositNowInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.EmergencyDeleteRootBundle;
} & ParsedEmergencyDeleteRootBundleInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.ExecuteRelayerRefundLeaf;
} & ParsedExecuteRelayerRefundLeafInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.ExecuteRelayerRefundLeafDeferred;
} & ParsedExecuteRelayerRefundLeafDeferredInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.ExecuteSlowRelayLeaf;
} & ParsedExecuteSlowRelayLeafInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.FillRelay;
} & ParsedFillRelayInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.GetUnsafeDepositId;
} & ParsedGetUnsafeDepositIdInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.HandleReceiveMessage;
} & ParsedHandleReceiveMessageInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.Initialize;
} & ParsedInitializeInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.InitializeClaimAccount;
} & ParsedInitializeClaimAccountInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.InitializeInstructionParams;
} & ParsedInitializeInstructionParamsInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.PauseDeposits;
} & ParsedPauseDepositsInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.PauseFills;
} & ParsedPauseFillsInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.RelayRootBundle;
} & ParsedRelayRootBundleInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.RequestSlowFill;
} & ParsedRequestSlowFillInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.SetCrossDomainAdmin;
} & ParsedSetCrossDomainAdminInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.SetCurrentTime;
} & ParsedSetCurrentTimeInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.SetEnableRoute;
} & ParsedSetEnableRouteInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.TransferOwnership;
} & ParsedTransferOwnershipInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.UnsafeDeposit;
} & ParsedUnsafeDepositInstruction<TProgram>) | ({
    instructionType: SvmSpokeInstruction.WriteInstructionParamsFragment;
} & ParsedWriteInstructionParamsFragmentInstruction<TProgram>);
