import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
import { BinaryReader, BinaryWriter } from "../../../binary";
/** Params is the data structure that keeps the parameters of the module. */
export interface Params {
    /** min_deposit is the minimum deposit required to create a tunnel. */
    minDeposit: Coin[];
    /** min_interval is the minimum interval in seconds. */
    minInterval: bigint;
    /** max_interval is the maximum interval in seconds. */
    maxInterval: bigint;
    /** min_deviation_bps is the minimum deviation in basis points. */
    minDeviationBps: bigint;
    /** max_deviation_bps is the maximum deviation in basis points. */
    maxDeviationBps: bigint;
    /** max_signals defines the maximum number of signals allowed per tunnel. */
    maxSignals: bigint;
    /** base_packet_fee is the base fee for each packet. */
    basePacketFee: Coin[];
    /** router_ibc_channel specifies the IBC channel used by the tunnel to communicate with the Router chain. */
    routerIbcChannel: string;
    /**
     * router_integration_contract specifies the address of the Router integration contract on the Router chain
     * that the tunnel module will interact with.
     */
    routerIntegrationContract: string;
    /** axelar_ibc_channel specifies the IBC channel used by the tunnel to communicate with the axelar chain. */
    axelarIbcChannel: string;
    /** axelar_gmp_account is the account address on axelar chain that processes and verifies Axelar GMP transactions. */
    axelarGmpAccount: string;
    /** axelar_fee_recipient is the account address on axelar chain that receive fee from tunnel. */
    axelarFeeRecipient: string;
}
export interface ParamsProtoMsg {
    typeUrl: "/band.tunnel.v1beta1.Params";
    value: Uint8Array;
}
/** Params is the data structure that keeps the parameters of the module. */
export interface ParamsAmino {
    /** min_deposit is the minimum deposit required to create a tunnel. */
    min_deposit?: CoinAmino[];
    /** min_interval is the minimum interval in seconds. */
    min_interval?: string;
    /** max_interval is the maximum interval in seconds. */
    max_interval?: string;
    /** min_deviation_bps is the minimum deviation in basis points. */
    min_deviation_bps?: string;
    /** max_deviation_bps is the maximum deviation in basis points. */
    max_deviation_bps?: string;
    /** max_signals defines the maximum number of signals allowed per tunnel. */
    max_signals?: string;
    /** base_packet_fee is the base fee for each packet. */
    base_packet_fee?: CoinAmino[];
    /** router_ibc_channel specifies the IBC channel used by the tunnel to communicate with the Router chain. */
    router_ibc_channel?: string;
    /**
     * router_integration_contract specifies the address of the Router integration contract on the Router chain
     * that the tunnel module will interact with.
     */
    router_integration_contract?: string;
    /** axelar_ibc_channel specifies the IBC channel used by the tunnel to communicate with the axelar chain. */
    axelar_ibc_channel?: string;
    /** axelar_gmp_account is the account address on axelar chain that processes and verifies Axelar GMP transactions. */
    axelar_gmp_account?: string;
    /** axelar_fee_recipient is the account address on axelar chain that receive fee from tunnel. */
    axelar_fee_recipient?: string;
}
export interface ParamsAminoMsg {
    type: "/band.tunnel.v1beta1.Params";
    value: ParamsAmino;
}
/** Params is the data structure that keeps the parameters of the module. */
export interface ParamsSDKType {
    min_deposit: CoinSDKType[];
    min_interval: bigint;
    max_interval: bigint;
    min_deviation_bps: bigint;
    max_deviation_bps: bigint;
    max_signals: bigint;
    base_packet_fee: CoinSDKType[];
    router_ibc_channel: string;
    router_integration_contract: string;
    axelar_ibc_channel: string;
    axelar_gmp_account: string;
    axelar_fee_recipient: string;
}
export declare const Params: {
    typeUrl: string;
    encode(message: Params, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Params;
    fromPartial(object: Partial<Params>): Params;
    fromAmino(object: ParamsAmino): Params;
    toAmino(message: Params): ParamsAmino;
    fromAminoMsg(object: ParamsAminoMsg): Params;
    fromProtoMsg(message: ParamsProtoMsg): Params;
    toProto(message: Params): Uint8Array;
    toProtoMsg(message: Params): ParamsProtoMsg;
};
