/**
 * 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 Codec, type Decoder, type Encoder, type IAccountMeta, type IAccountSignerMeta, type IInstruction, type IInstructionWithAccounts, type IInstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/web3-v2.js';
import { SVM_SPOKE_PROGRAM_ADDRESS } from '../programs';
export declare const BRIDGE_TOKENS_TO_HUB_POOL_DISCRIMINATOR: Uint8Array;
export declare function getBridgeTokensToHubPoolDiscriminatorBytes(): ReadonlyUint8Array;
export type BridgeTokensToHubPoolInstruction<TProgram extends string = typeof SVM_SPOKE_PROGRAM_ADDRESS, TAccountSigner extends string | IAccountMeta<string> = string, TAccountPayer extends string | IAccountMeta<string> = string, TAccountMint extends string | IAccountMeta<string> = string, TAccountState extends string | IAccountMeta<string> = string, TAccountTransferLiability extends string | IAccountMeta<string> = string, TAccountVault extends string | IAccountMeta<string> = string, TAccountTokenMessengerMinterSenderAuthority extends string | IAccountMeta<string> = string, TAccountMessageTransmitter extends string | IAccountMeta<string> = string, TAccountTokenMessenger extends string | IAccountMeta<string> = string, TAccountRemoteTokenMessenger extends string | IAccountMeta<string> = string, TAccountTokenMinter extends string | IAccountMeta<string> = string, TAccountLocalToken extends string | IAccountMeta<string> = string, TAccountCctpEventAuthority extends string | IAccountMeta<string> = string, TAccountMessageSentEventData extends string | IAccountMeta<string> = string, TAccountMessageTransmitterProgram extends string | IAccountMeta<string> = 'CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd', TAccountTokenMessengerMinterProgram extends string | IAccountMeta<string> = 'CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3', TAccountTokenProgram extends string | IAccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', TAccountSystemProgram extends string | IAccountMeta<string> = '11111111111111111111111111111111', TAccountEventAuthority extends string | IAccountMeta<string> = string, TAccountProgram extends string | IAccountMeta<string> = string, TRemainingAccounts extends readonly IAccountMeta<string>[] = []> = IInstruction<TProgram> & IInstructionWithData<Uint8Array> & IInstructionWithAccounts<[
    TAccountSigner extends string ? ReadonlySignerAccount<TAccountSigner> & IAccountSignerMeta<TAccountSigner> : TAccountSigner,
    TAccountPayer extends string ? WritableSignerAccount<TAccountPayer> & IAccountSignerMeta<TAccountPayer> : TAccountPayer,
    TAccountMint extends string ? WritableAccount<TAccountMint> : TAccountMint,
    TAccountState extends string ? ReadonlyAccount<TAccountState> : TAccountState,
    TAccountTransferLiability extends string ? WritableAccount<TAccountTransferLiability> : TAccountTransferLiability,
    TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault,
    TAccountTokenMessengerMinterSenderAuthority extends string ? ReadonlyAccount<TAccountTokenMessengerMinterSenderAuthority> : TAccountTokenMessengerMinterSenderAuthority,
    TAccountMessageTransmitter extends string ? WritableAccount<TAccountMessageTransmitter> : TAccountMessageTransmitter,
    TAccountTokenMessenger extends string ? ReadonlyAccount<TAccountTokenMessenger> : TAccountTokenMessenger,
    TAccountRemoteTokenMessenger extends string ? ReadonlyAccount<TAccountRemoteTokenMessenger> : TAccountRemoteTokenMessenger,
    TAccountTokenMinter extends string ? ReadonlyAccount<TAccountTokenMinter> : TAccountTokenMinter,
    TAccountLocalToken extends string ? WritableAccount<TAccountLocalToken> : TAccountLocalToken,
    TAccountCctpEventAuthority extends string ? ReadonlyAccount<TAccountCctpEventAuthority> : TAccountCctpEventAuthority,
    TAccountMessageSentEventData extends string ? WritableSignerAccount<TAccountMessageSentEventData> & IAccountSignerMeta<TAccountMessageSentEventData> : TAccountMessageSentEventData,
    TAccountMessageTransmitterProgram extends string ? ReadonlyAccount<TAccountMessageTransmitterProgram> : TAccountMessageTransmitterProgram,
    TAccountTokenMessengerMinterProgram extends string ? ReadonlyAccount<TAccountTokenMessengerMinterProgram> : TAccountTokenMessengerMinterProgram,
    TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
    TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
    TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,
    TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,
    ...TRemainingAccounts
]>;
export type BridgeTokensToHubPoolInstructionData = {
    discriminator: ReadonlyUint8Array;
    amount: bigint;
};
export type BridgeTokensToHubPoolInstructionDataArgs = {
    amount: number | bigint;
};
export declare function getBridgeTokensToHubPoolInstructionDataEncoder(): Encoder<BridgeTokensToHubPoolInstructionDataArgs>;
export declare function getBridgeTokensToHubPoolInstructionDataDecoder(): Decoder<BridgeTokensToHubPoolInstructionData>;
export declare function getBridgeTokensToHubPoolInstructionDataCodec(): Codec<BridgeTokensToHubPoolInstructionDataArgs, BridgeTokensToHubPoolInstructionData>;
export type BridgeTokensToHubPoolAsyncInput<TAccountSigner extends string = string, TAccountPayer extends string = string, TAccountMint extends string = string, TAccountState extends string = string, TAccountTransferLiability extends string = string, TAccountVault extends string = string, TAccountTokenMessengerMinterSenderAuthority extends string = string, TAccountMessageTransmitter extends string = string, TAccountTokenMessenger extends string = string, TAccountRemoteTokenMessenger extends string = string, TAccountTokenMinter extends string = string, TAccountLocalToken extends string = string, TAccountCctpEventAuthority extends string = string, TAccountMessageSentEventData extends string = string, TAccountMessageTransmitterProgram extends string = string, TAccountTokenMessengerMinterProgram extends string = string, TAccountTokenProgram extends string = string, TAccountSystemProgram extends string = string, TAccountEventAuthority extends string = string, TAccountProgram extends string = string> = {
    signer: TransactionSigner<TAccountSigner>;
    payer: TransactionSigner<TAccountPayer>;
    mint: Address<TAccountMint>;
    state: Address<TAccountState>;
    transferLiability?: Address<TAccountTransferLiability>;
    vault?: Address<TAccountVault>;
    tokenMessengerMinterSenderAuthority: Address<TAccountTokenMessengerMinterSenderAuthority>;
    messageTransmitter: Address<TAccountMessageTransmitter>;
    tokenMessenger: Address<TAccountTokenMessenger>;
    remoteTokenMessenger: Address<TAccountRemoteTokenMessenger>;
    tokenMinter: Address<TAccountTokenMinter>;
    localToken: Address<TAccountLocalToken>;
    cctpEventAuthority: Address<TAccountCctpEventAuthority>;
    messageSentEventData: TransactionSigner<TAccountMessageSentEventData>;
    messageTransmitterProgram?: Address<TAccountMessageTransmitterProgram>;
    tokenMessengerMinterProgram?: Address<TAccountTokenMessengerMinterProgram>;
    tokenProgram?: Address<TAccountTokenProgram>;
    systemProgram?: Address<TAccountSystemProgram>;
    eventAuthority?: Address<TAccountEventAuthority>;
    program: Address<TAccountProgram>;
    amount: BridgeTokensToHubPoolInstructionDataArgs['amount'];
};
export declare function getBridgeTokensToHubPoolInstructionAsync<TAccountSigner extends string, TAccountPayer extends string, TAccountMint extends string, TAccountState extends string, TAccountTransferLiability extends string, TAccountVault extends string, TAccountTokenMessengerMinterSenderAuthority extends string, TAccountMessageTransmitter extends string, TAccountTokenMessenger extends string, TAccountRemoteTokenMessenger extends string, TAccountTokenMinter extends string, TAccountLocalToken extends string, TAccountCctpEventAuthority extends string, TAccountMessageSentEventData extends string, TAccountMessageTransmitterProgram extends string, TAccountTokenMessengerMinterProgram extends string, TAccountTokenProgram extends string, TAccountSystemProgram extends string, TAccountEventAuthority extends string, TAccountProgram extends string, TProgramAddress extends Address = typeof SVM_SPOKE_PROGRAM_ADDRESS>(input: BridgeTokensToHubPoolAsyncInput<TAccountSigner, TAccountPayer, TAccountMint, TAccountState, TAccountTransferLiability, TAccountVault, TAccountTokenMessengerMinterSenderAuthority, TAccountMessageTransmitter, TAccountTokenMessenger, TAccountRemoteTokenMessenger, TAccountTokenMinter, TAccountLocalToken, TAccountCctpEventAuthority, TAccountMessageSentEventData, TAccountMessageTransmitterProgram, TAccountTokenMessengerMinterProgram, TAccountTokenProgram, TAccountSystemProgram, TAccountEventAuthority, TAccountProgram>, config?: {
    programAddress?: TProgramAddress;
}): Promise<BridgeTokensToHubPoolInstruction<TProgramAddress, TAccountSigner, TAccountPayer, TAccountMint, TAccountState, TAccountTransferLiability, TAccountVault, TAccountTokenMessengerMinterSenderAuthority, TAccountMessageTransmitter, TAccountTokenMessenger, TAccountRemoteTokenMessenger, TAccountTokenMinter, TAccountLocalToken, TAccountCctpEventAuthority, TAccountMessageSentEventData, TAccountMessageTransmitterProgram, TAccountTokenMessengerMinterProgram, TAccountTokenProgram, TAccountSystemProgram, TAccountEventAuthority, TAccountProgram>>;
export type BridgeTokensToHubPoolInput<TAccountSigner extends string = string, TAccountPayer extends string = string, TAccountMint extends string = string, TAccountState extends string = string, TAccountTransferLiability extends string = string, TAccountVault extends string = string, TAccountTokenMessengerMinterSenderAuthority extends string = string, TAccountMessageTransmitter extends string = string, TAccountTokenMessenger extends string = string, TAccountRemoteTokenMessenger extends string = string, TAccountTokenMinter extends string = string, TAccountLocalToken extends string = string, TAccountCctpEventAuthority extends string = string, TAccountMessageSentEventData extends string = string, TAccountMessageTransmitterProgram extends string = string, TAccountTokenMessengerMinterProgram extends string = string, TAccountTokenProgram extends string = string, TAccountSystemProgram extends string = string, TAccountEventAuthority extends string = string, TAccountProgram extends string = string> = {
    signer: TransactionSigner<TAccountSigner>;
    payer: TransactionSigner<TAccountPayer>;
    mint: Address<TAccountMint>;
    state: Address<TAccountState>;
    transferLiability: Address<TAccountTransferLiability>;
    vault: Address<TAccountVault>;
    tokenMessengerMinterSenderAuthority: Address<TAccountTokenMessengerMinterSenderAuthority>;
    messageTransmitter: Address<TAccountMessageTransmitter>;
    tokenMessenger: Address<TAccountTokenMessenger>;
    remoteTokenMessenger: Address<TAccountRemoteTokenMessenger>;
    tokenMinter: Address<TAccountTokenMinter>;
    localToken: Address<TAccountLocalToken>;
    cctpEventAuthority: Address<TAccountCctpEventAuthority>;
    messageSentEventData: TransactionSigner<TAccountMessageSentEventData>;
    messageTransmitterProgram?: Address<TAccountMessageTransmitterProgram>;
    tokenMessengerMinterProgram?: Address<TAccountTokenMessengerMinterProgram>;
    tokenProgram?: Address<TAccountTokenProgram>;
    systemProgram?: Address<TAccountSystemProgram>;
    eventAuthority: Address<TAccountEventAuthority>;
    program: Address<TAccountProgram>;
    amount: BridgeTokensToHubPoolInstructionDataArgs['amount'];
};
export declare function getBridgeTokensToHubPoolInstruction<TAccountSigner extends string, TAccountPayer extends string, TAccountMint extends string, TAccountState extends string, TAccountTransferLiability extends string, TAccountVault extends string, TAccountTokenMessengerMinterSenderAuthority extends string, TAccountMessageTransmitter extends string, TAccountTokenMessenger extends string, TAccountRemoteTokenMessenger extends string, TAccountTokenMinter extends string, TAccountLocalToken extends string, TAccountCctpEventAuthority extends string, TAccountMessageSentEventData extends string, TAccountMessageTransmitterProgram extends string, TAccountTokenMessengerMinterProgram extends string, TAccountTokenProgram extends string, TAccountSystemProgram extends string, TAccountEventAuthority extends string, TAccountProgram extends string, TProgramAddress extends Address = typeof SVM_SPOKE_PROGRAM_ADDRESS>(input: BridgeTokensToHubPoolInput<TAccountSigner, TAccountPayer, TAccountMint, TAccountState, TAccountTransferLiability, TAccountVault, TAccountTokenMessengerMinterSenderAuthority, TAccountMessageTransmitter, TAccountTokenMessenger, TAccountRemoteTokenMessenger, TAccountTokenMinter, TAccountLocalToken, TAccountCctpEventAuthority, TAccountMessageSentEventData, TAccountMessageTransmitterProgram, TAccountTokenMessengerMinterProgram, TAccountTokenProgram, TAccountSystemProgram, TAccountEventAuthority, TAccountProgram>, config?: {
    programAddress?: TProgramAddress;
}): BridgeTokensToHubPoolInstruction<TProgramAddress, TAccountSigner, TAccountPayer, TAccountMint, TAccountState, TAccountTransferLiability, TAccountVault, TAccountTokenMessengerMinterSenderAuthority, TAccountMessageTransmitter, TAccountTokenMessenger, TAccountRemoteTokenMessenger, TAccountTokenMinter, TAccountLocalToken, TAccountCctpEventAuthority, TAccountMessageSentEventData, TAccountMessageTransmitterProgram, TAccountTokenMessengerMinterProgram, TAccountTokenProgram, TAccountSystemProgram, TAccountEventAuthority, TAccountProgram>;
export type ParsedBridgeTokensToHubPoolInstruction<TProgram extends string = typeof SVM_SPOKE_PROGRAM_ADDRESS, TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        signer: TAccountMetas[0];
        payer: TAccountMetas[1];
        mint: TAccountMetas[2];
        state: TAccountMetas[3];
        transferLiability: TAccountMetas[4];
        vault: TAccountMetas[5];
        tokenMessengerMinterSenderAuthority: TAccountMetas[6];
        messageTransmitter: TAccountMetas[7];
        tokenMessenger: TAccountMetas[8];
        remoteTokenMessenger: TAccountMetas[9];
        tokenMinter: TAccountMetas[10];
        localToken: TAccountMetas[11];
        cctpEventAuthority: TAccountMetas[12];
        messageSentEventData: TAccountMetas[13];
        messageTransmitterProgram: TAccountMetas[14];
        tokenMessengerMinterProgram: TAccountMetas[15];
        tokenProgram: TAccountMetas[16];
        systemProgram: TAccountMetas[17];
        eventAuthority: TAccountMetas[18];
        program: TAccountMetas[19];
    };
    data: BridgeTokensToHubPoolInstructionData;
};
export declare function parseBridgeTokensToHubPoolInstruction<TProgram extends string, TAccountMetas extends readonly IAccountMeta[]>(instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>): ParsedBridgeTokensToHubPoolInstruction<TProgram, TAccountMetas>;
