import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring
 * See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning
 * @name Metadata
 * @package ibc.applications.interchain_accounts.v1
 * @see proto type: ibc.applications.interchain_accounts.v1.Metadata
 */
export interface Metadata {
    /**
     * version defines the ICS27 protocol version
     */
    version: string;
    /**
     * controller_connection_id is the connection identifier associated with the controller chain
     */
    controllerConnectionId: string;
    /**
     * host_connection_id is the connection identifier associated with the host chain
     */
    hostConnectionId: string;
    /**
     * address defines the interchain account address to be fulfilled upon the OnChanOpenTry handshake step
     * NOTE: the address field is empty on the OnChanOpenInit handshake step
     */
    address: string;
    /**
     * encoding defines the supported codec format
     */
    encoding: string;
    /**
     * tx_type defines the type of transactions the interchain account can execute
     */
    txType: string;
}
export interface MetadataProtoMsg {
    typeUrl: "/ibc.applications.interchain_accounts.v1.Metadata";
    value: Uint8Array;
}
/**
 * Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring
 * See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning
 * @name MetadataAmino
 * @package ibc.applications.interchain_accounts.v1
 * @see proto type: ibc.applications.interchain_accounts.v1.Metadata
 */
export interface MetadataAmino {
    /**
     * version defines the ICS27 protocol version
     */
    version: string;
    /**
     * controller_connection_id is the connection identifier associated with the controller chain
     */
    controller_connection_id: string;
    /**
     * host_connection_id is the connection identifier associated with the host chain
     */
    host_connection_id: string;
    /**
     * address defines the interchain account address to be fulfilled upon the OnChanOpenTry handshake step
     * NOTE: the address field is empty on the OnChanOpenInit handshake step
     */
    address: string;
    /**
     * encoding defines the supported codec format
     */
    encoding: string;
    /**
     * tx_type defines the type of transactions the interchain account can execute
     */
    tx_type: string;
}
export interface MetadataAminoMsg {
    type: "cosmos-sdk/Metadata";
    value: MetadataAmino;
}
/**
 * Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring
 * See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning
 * @name Metadata
 * @package ibc.applications.interchain_accounts.v1
 * @see proto type: ibc.applications.interchain_accounts.v1.Metadata
 */
export declare const Metadata: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Metadata;
    isAmino(o: any): o is MetadataAmino;
    encode(message: Metadata, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Metadata;
    fromPartial(object: DeepPartial<Metadata>): Metadata;
    fromAmino(object: MetadataAmino): Metadata;
    toAmino(message: Metadata): MetadataAmino;
    fromAminoMsg(object: MetadataAminoMsg): Metadata;
    toAminoMsg(message: Metadata): MetadataAminoMsg;
    fromProtoMsg(message: MetadataProtoMsg): Metadata;
    toProto(message: Metadata): Uint8Array;
    toProtoMsg(message: Metadata): MetadataProtoMsg;
    registerTypeUrl(): void;
};
