import { Order } from "../../../../core/channel/v1/channel";
import { InterchainAccountPacketData, InterchainAccountPacketDataAmino } from "../../v1/packet";
import { Params, ParamsAmino } from "./controller";
import { DeepPartial } from "../../../../../helpers";
import { BinaryReader, BinaryWriter } from "../../../../../binary";
/**
 * MsgRegisterInterchainAccount defines the payload for Msg/RegisterAccount
 * @name MsgRegisterInterchainAccount
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgRegisterInterchainAccount
 */
export interface MsgRegisterInterchainAccount {
    owner: string;
    connectionId: string;
    version: string;
    ordering: Order;
}
export interface MsgRegisterInterchainAccountProtoMsg {
    typeUrl: "/ibc.applications.interchain_accounts.controller.v1.MsgRegisterInterchainAccount";
    value: Uint8Array;
}
/**
 * MsgRegisterInterchainAccount defines the payload for Msg/RegisterAccount
 * @name MsgRegisterInterchainAccountAmino
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgRegisterInterchainAccount
 */
export interface MsgRegisterInterchainAccountAmino {
    owner: string;
    connection_id: string;
    version: string;
    ordering: Order;
}
export interface MsgRegisterInterchainAccountAminoMsg {
    type: "cosmos-sdk/MsgRegisterInterchainAccount";
    value: MsgRegisterInterchainAccountAmino;
}
/**
 * MsgRegisterInterchainAccountResponse defines the response for Msg/RegisterAccount
 * @name MsgRegisterInterchainAccountResponse
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgRegisterInterchainAccountResponse
 */
export interface MsgRegisterInterchainAccountResponse {
    channelId: string;
    portId: string;
}
export interface MsgRegisterInterchainAccountResponseProtoMsg {
    typeUrl: "/ibc.applications.interchain_accounts.controller.v1.MsgRegisterInterchainAccountResponse";
    value: Uint8Array;
}
/**
 * MsgRegisterInterchainAccountResponse defines the response for Msg/RegisterAccount
 * @name MsgRegisterInterchainAccountResponseAmino
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgRegisterInterchainAccountResponse
 */
export interface MsgRegisterInterchainAccountResponseAmino {
    channel_id: string;
    port_id: string;
}
export interface MsgRegisterInterchainAccountResponseAminoMsg {
    type: "cosmos-sdk/MsgRegisterInterchainAccountResponse";
    value: MsgRegisterInterchainAccountResponseAmino;
}
/**
 * MsgSendTx defines the payload for Msg/SendTx
 * @name MsgSendTx
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgSendTx
 */
export interface MsgSendTx {
    owner: string;
    connectionId: string;
    packetData: InterchainAccountPacketData;
    /**
     * Relative timeout timestamp provided will be added to the current block time during transaction execution.
     * The timeout timestamp must be non-zero.
     */
    relativeTimeout: bigint;
}
export interface MsgSendTxProtoMsg {
    typeUrl: "/ibc.applications.interchain_accounts.controller.v1.MsgSendTx";
    value: Uint8Array;
}
/**
 * MsgSendTx defines the payload for Msg/SendTx
 * @name MsgSendTxAmino
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgSendTx
 */
export interface MsgSendTxAmino {
    owner: string;
    connection_id: string;
    packet_data: InterchainAccountPacketDataAmino;
    /**
     * Relative timeout timestamp provided will be added to the current block time during transaction execution.
     * The timeout timestamp must be non-zero.
     */
    relative_timeout: string;
}
export interface MsgSendTxAminoMsg {
    type: "cosmos-sdk/MsgSendTx";
    value: MsgSendTxAmino;
}
/**
 * MsgSendTxResponse defines the response for MsgSendTx
 * @name MsgSendTxResponse
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgSendTxResponse
 */
export interface MsgSendTxResponse {
    sequence: bigint;
}
export interface MsgSendTxResponseProtoMsg {
    typeUrl: "/ibc.applications.interchain_accounts.controller.v1.MsgSendTxResponse";
    value: Uint8Array;
}
/**
 * MsgSendTxResponse defines the response for MsgSendTx
 * @name MsgSendTxResponseAmino
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgSendTxResponse
 */
export interface MsgSendTxResponseAmino {
    sequence: string;
}
export interface MsgSendTxResponseAminoMsg {
    type: "cosmos-sdk/MsgSendTxResponse";
    value: MsgSendTxResponseAmino;
}
/**
 * MsgUpdateParams defines the payload for Msg/UpdateParams
 * @name MsgUpdateParams
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgUpdateParams
 */
export interface MsgUpdateParams {
    /**
     * signer address
     */
    signer: string;
    /**
     * params defines the 27-interchain-accounts/controller parameters to update.
     *
     * NOTE: All parameters must be supplied.
     */
    params: Params;
}
export interface MsgUpdateParamsProtoMsg {
    typeUrl: "/ibc.applications.interchain_accounts.controller.v1.MsgUpdateParams";
    value: Uint8Array;
}
/**
 * MsgUpdateParams defines the payload for Msg/UpdateParams
 * @name MsgUpdateParamsAmino
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgUpdateParams
 */
export interface MsgUpdateParamsAmino {
    /**
     * signer address
     */
    signer: string;
    /**
     * params defines the 27-interchain-accounts/controller parameters to update.
     *
     * NOTE: All parameters must be supplied.
     */
    params: ParamsAmino;
}
export interface MsgUpdateParamsAminoMsg {
    type: "cosmos-sdk/MsgUpdateParams";
    value: MsgUpdateParamsAmino;
}
/**
 * MsgUpdateParamsResponse defines the response for Msg/UpdateParams
 * @name MsgUpdateParamsResponse
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgUpdateParamsResponse
 */
export interface MsgUpdateParamsResponse {
}
export interface MsgUpdateParamsResponseProtoMsg {
    typeUrl: "/ibc.applications.interchain_accounts.controller.v1.MsgUpdateParamsResponse";
    value: Uint8Array;
}
/**
 * MsgUpdateParamsResponse defines the response for Msg/UpdateParams
 * @name MsgUpdateParamsResponseAmino
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgUpdateParamsResponse
 */
export interface MsgUpdateParamsResponseAmino {
}
export interface MsgUpdateParamsResponseAminoMsg {
    type: "cosmos-sdk/MsgUpdateParamsResponse";
    value: MsgUpdateParamsResponseAmino;
}
/**
 * MsgRegisterInterchainAccount defines the payload for Msg/RegisterAccount
 * @name MsgRegisterInterchainAccount
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgRegisterInterchainAccount
 */
export declare const MsgRegisterInterchainAccount: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRegisterInterchainAccount;
    isAmino(o: any): o is MsgRegisterInterchainAccountAmino;
    encode(message: MsgRegisterInterchainAccount, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRegisterInterchainAccount;
    fromPartial(object: DeepPartial<MsgRegisterInterchainAccount>): MsgRegisterInterchainAccount;
    fromAmino(object: MsgRegisterInterchainAccountAmino): MsgRegisterInterchainAccount;
    toAmino(message: MsgRegisterInterchainAccount): MsgRegisterInterchainAccountAmino;
    fromAminoMsg(object: MsgRegisterInterchainAccountAminoMsg): MsgRegisterInterchainAccount;
    toAminoMsg(message: MsgRegisterInterchainAccount): MsgRegisterInterchainAccountAminoMsg;
    fromProtoMsg(message: MsgRegisterInterchainAccountProtoMsg): MsgRegisterInterchainAccount;
    toProto(message: MsgRegisterInterchainAccount): Uint8Array;
    toProtoMsg(message: MsgRegisterInterchainAccount): MsgRegisterInterchainAccountProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgRegisterInterchainAccountResponse defines the response for Msg/RegisterAccount
 * @name MsgRegisterInterchainAccountResponse
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgRegisterInterchainAccountResponse
 */
export declare const MsgRegisterInterchainAccountResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRegisterInterchainAccountResponse;
    isAmino(o: any): o is MsgRegisterInterchainAccountResponseAmino;
    encode(message: MsgRegisterInterchainAccountResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRegisterInterchainAccountResponse;
    fromPartial(object: DeepPartial<MsgRegisterInterchainAccountResponse>): MsgRegisterInterchainAccountResponse;
    fromAmino(object: MsgRegisterInterchainAccountResponseAmino): MsgRegisterInterchainAccountResponse;
    toAmino(message: MsgRegisterInterchainAccountResponse): MsgRegisterInterchainAccountResponseAmino;
    fromAminoMsg(object: MsgRegisterInterchainAccountResponseAminoMsg): MsgRegisterInterchainAccountResponse;
    toAminoMsg(message: MsgRegisterInterchainAccountResponse): MsgRegisterInterchainAccountResponseAminoMsg;
    fromProtoMsg(message: MsgRegisterInterchainAccountResponseProtoMsg): MsgRegisterInterchainAccountResponse;
    toProto(message: MsgRegisterInterchainAccountResponse): Uint8Array;
    toProtoMsg(message: MsgRegisterInterchainAccountResponse): MsgRegisterInterchainAccountResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgSendTx defines the payload for Msg/SendTx
 * @name MsgSendTx
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgSendTx
 */
export declare const MsgSendTx: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgSendTx;
    isAmino(o: any): o is MsgSendTxAmino;
    encode(message: MsgSendTx, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgSendTx;
    fromPartial(object: DeepPartial<MsgSendTx>): MsgSendTx;
    fromAmino(object: MsgSendTxAmino): MsgSendTx;
    toAmino(message: MsgSendTx): MsgSendTxAmino;
    fromAminoMsg(object: MsgSendTxAminoMsg): MsgSendTx;
    toAminoMsg(message: MsgSendTx): MsgSendTxAminoMsg;
    fromProtoMsg(message: MsgSendTxProtoMsg): MsgSendTx;
    toProto(message: MsgSendTx): Uint8Array;
    toProtoMsg(message: MsgSendTx): MsgSendTxProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgSendTxResponse defines the response for MsgSendTx
 * @name MsgSendTxResponse
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgSendTxResponse
 */
export declare const MsgSendTxResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgSendTxResponse;
    isAmino(o: any): o is MsgSendTxResponseAmino;
    encode(message: MsgSendTxResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgSendTxResponse;
    fromPartial(object: DeepPartial<MsgSendTxResponse>): MsgSendTxResponse;
    fromAmino(object: MsgSendTxResponseAmino): MsgSendTxResponse;
    toAmino(message: MsgSendTxResponse): MsgSendTxResponseAmino;
    fromAminoMsg(object: MsgSendTxResponseAminoMsg): MsgSendTxResponse;
    toAminoMsg(message: MsgSendTxResponse): MsgSendTxResponseAminoMsg;
    fromProtoMsg(message: MsgSendTxResponseProtoMsg): MsgSendTxResponse;
    toProto(message: MsgSendTxResponse): Uint8Array;
    toProtoMsg(message: MsgSendTxResponse): MsgSendTxResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgUpdateParams defines the payload for Msg/UpdateParams
 * @name MsgUpdateParams
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgUpdateParams
 */
export declare const MsgUpdateParams: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgUpdateParams;
    isAmino(o: any): o is MsgUpdateParamsAmino;
    encode(message: MsgUpdateParams, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParams;
    fromPartial(object: DeepPartial<MsgUpdateParams>): MsgUpdateParams;
    fromAmino(object: MsgUpdateParamsAmino): MsgUpdateParams;
    toAmino(message: MsgUpdateParams): MsgUpdateParamsAmino;
    fromAminoMsg(object: MsgUpdateParamsAminoMsg): MsgUpdateParams;
    toAminoMsg(message: MsgUpdateParams): MsgUpdateParamsAminoMsg;
    fromProtoMsg(message: MsgUpdateParamsProtoMsg): MsgUpdateParams;
    toProto(message: MsgUpdateParams): Uint8Array;
    toProtoMsg(message: MsgUpdateParams): MsgUpdateParamsProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgUpdateParamsResponse defines the response for Msg/UpdateParams
 * @name MsgUpdateParamsResponse
 * @package ibc.applications.interchain_accounts.controller.v1
 * @see proto type: ibc.applications.interchain_accounts.controller.v1.MsgUpdateParamsResponse
 */
export declare const MsgUpdateParamsResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgUpdateParamsResponse;
    isAmino(o: any): o is MsgUpdateParamsResponseAmino;
    encode(_: MsgUpdateParamsResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParamsResponse;
    fromPartial(_: DeepPartial<MsgUpdateParamsResponse>): MsgUpdateParamsResponse;
    fromAmino(_: MsgUpdateParamsResponseAmino): MsgUpdateParamsResponse;
    toAmino(_: MsgUpdateParamsResponse): MsgUpdateParamsResponseAmino;
    fromAminoMsg(object: MsgUpdateParamsResponseAminoMsg): MsgUpdateParamsResponse;
    toAminoMsg(message: MsgUpdateParamsResponse): MsgUpdateParamsResponseAminoMsg;
    fromProtoMsg(message: MsgUpdateParamsResponseProtoMsg): MsgUpdateParamsResponse;
    toProto(message: MsgUpdateParamsResponse): Uint8Array;
    toProtoMsg(message: MsgUpdateParamsResponse): MsgUpdateParamsResponseProtoMsg;
    registerTypeUrl(): void;
};
