import { Config, ConfigAmino } from "./config";
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * MsgRegisterCounterparty defines a message to register a counterparty on a client
 * @name MsgRegisterCounterparty
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgRegisterCounterparty
 */
export interface MsgRegisterCounterparty {
    /**
     * client identifier
     */
    clientId: string;
    /**
     * counterparty merkle prefix
     */
    counterpartyMerklePrefix: Uint8Array[];
    /**
     * counterparty client identifier
     */
    counterpartyClientId: string;
    /**
     * signer address
     */
    signer: string;
}
export interface MsgRegisterCounterpartyProtoMsg {
    typeUrl: "/ibc.core.client.v2.MsgRegisterCounterparty";
    value: Uint8Array;
}
/**
 * MsgRegisterCounterparty defines a message to register a counterparty on a client
 * @name MsgRegisterCounterpartyAmino
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgRegisterCounterparty
 */
export interface MsgRegisterCounterpartyAmino {
    /**
     * client identifier
     */
    client_id: string;
    /**
     * counterparty merkle prefix
     */
    counterparty_merkle_prefix: string[];
    /**
     * counterparty client identifier
     */
    counterparty_client_id: string;
    /**
     * signer address
     */
    signer: string;
}
export interface MsgRegisterCounterpartyAminoMsg {
    type: "cosmos-sdk/MsgRegisterCounterparty";
    value: MsgRegisterCounterpartyAmino;
}
/**
 * MsgRegisterCounterpartyResponse defines the Msg/RegisterCounterparty response type.
 * @name MsgRegisterCounterpartyResponse
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgRegisterCounterpartyResponse
 */
export interface MsgRegisterCounterpartyResponse {
}
export interface MsgRegisterCounterpartyResponseProtoMsg {
    typeUrl: "/ibc.core.client.v2.MsgRegisterCounterpartyResponse";
    value: Uint8Array;
}
/**
 * MsgRegisterCounterpartyResponse defines the Msg/RegisterCounterparty response type.
 * @name MsgRegisterCounterpartyResponseAmino
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgRegisterCounterpartyResponse
 */
export interface MsgRegisterCounterpartyResponseAmino {
}
export interface MsgRegisterCounterpartyResponseAminoMsg {
    type: "cosmos-sdk/MsgRegisterCounterpartyResponse";
    value: MsgRegisterCounterpartyResponseAmino;
}
/**
 * MsgUpdateClientConfig defines the sdk.Msg type to update the configuration for a given client
 * @name MsgUpdateClientConfig
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgUpdateClientConfig
 */
export interface MsgUpdateClientConfig {
    /**
     * client identifier
     */
    clientId: string;
    /**
     * allowed relayers
     *
     * NOTE: All fields in the config must be supplied.
     */
    config: Config;
    /**
     * signer address
     */
    signer: string;
}
export interface MsgUpdateClientConfigProtoMsg {
    typeUrl: "/ibc.core.client.v2.MsgUpdateClientConfig";
    value: Uint8Array;
}
/**
 * MsgUpdateClientConfig defines the sdk.Msg type to update the configuration for a given client
 * @name MsgUpdateClientConfigAmino
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgUpdateClientConfig
 */
export interface MsgUpdateClientConfigAmino {
    /**
     * client identifier
     */
    client_id: string;
    /**
     * allowed relayers
     *
     * NOTE: All fields in the config must be supplied.
     */
    config: ConfigAmino;
    /**
     * signer address
     */
    signer: string;
}
export interface MsgUpdateClientConfigAminoMsg {
    type: "cosmos-sdk/MsgUpdateClientConfig";
    value: MsgUpdateClientConfigAmino;
}
/**
 * MsgUpdateClientConfigResponse defines the MsgUpdateClientConfig response type.
 * @name MsgUpdateClientConfigResponse
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgUpdateClientConfigResponse
 */
export interface MsgUpdateClientConfigResponse {
}
export interface MsgUpdateClientConfigResponseProtoMsg {
    typeUrl: "/ibc.core.client.v2.MsgUpdateClientConfigResponse";
    value: Uint8Array;
}
/**
 * MsgUpdateClientConfigResponse defines the MsgUpdateClientConfig response type.
 * @name MsgUpdateClientConfigResponseAmino
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgUpdateClientConfigResponse
 */
export interface MsgUpdateClientConfigResponseAmino {
}
export interface MsgUpdateClientConfigResponseAminoMsg {
    type: "cosmos-sdk/MsgUpdateClientConfigResponse";
    value: MsgUpdateClientConfigResponseAmino;
}
/**
 * MsgRegisterCounterparty defines a message to register a counterparty on a client
 * @name MsgRegisterCounterparty
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgRegisterCounterparty
 */
export declare const MsgRegisterCounterparty: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRegisterCounterparty;
    isAmino(o: any): o is MsgRegisterCounterpartyAmino;
    encode(message: MsgRegisterCounterparty, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRegisterCounterparty;
    fromPartial(object: DeepPartial<MsgRegisterCounterparty>): MsgRegisterCounterparty;
    fromAmino(object: MsgRegisterCounterpartyAmino): MsgRegisterCounterparty;
    toAmino(message: MsgRegisterCounterparty): MsgRegisterCounterpartyAmino;
    fromAminoMsg(object: MsgRegisterCounterpartyAminoMsg): MsgRegisterCounterparty;
    toAminoMsg(message: MsgRegisterCounterparty): MsgRegisterCounterpartyAminoMsg;
    fromProtoMsg(message: MsgRegisterCounterpartyProtoMsg): MsgRegisterCounterparty;
    toProto(message: MsgRegisterCounterparty): Uint8Array;
    toProtoMsg(message: MsgRegisterCounterparty): MsgRegisterCounterpartyProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgRegisterCounterpartyResponse defines the Msg/RegisterCounterparty response type.
 * @name MsgRegisterCounterpartyResponse
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgRegisterCounterpartyResponse
 */
export declare const MsgRegisterCounterpartyResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRegisterCounterpartyResponse;
    isAmino(o: any): o is MsgRegisterCounterpartyResponseAmino;
    encode(_: MsgRegisterCounterpartyResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRegisterCounterpartyResponse;
    fromPartial(_: DeepPartial<MsgRegisterCounterpartyResponse>): MsgRegisterCounterpartyResponse;
    fromAmino(_: MsgRegisterCounterpartyResponseAmino): MsgRegisterCounterpartyResponse;
    toAmino(_: MsgRegisterCounterpartyResponse): MsgRegisterCounterpartyResponseAmino;
    fromAminoMsg(object: MsgRegisterCounterpartyResponseAminoMsg): MsgRegisterCounterpartyResponse;
    toAminoMsg(message: MsgRegisterCounterpartyResponse): MsgRegisterCounterpartyResponseAminoMsg;
    fromProtoMsg(message: MsgRegisterCounterpartyResponseProtoMsg): MsgRegisterCounterpartyResponse;
    toProto(message: MsgRegisterCounterpartyResponse): Uint8Array;
    toProtoMsg(message: MsgRegisterCounterpartyResponse): MsgRegisterCounterpartyResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgUpdateClientConfig defines the sdk.Msg type to update the configuration for a given client
 * @name MsgUpdateClientConfig
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgUpdateClientConfig
 */
export declare const MsgUpdateClientConfig: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgUpdateClientConfig;
    isAmino(o: any): o is MsgUpdateClientConfigAmino;
    encode(message: MsgUpdateClientConfig, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateClientConfig;
    fromPartial(object: DeepPartial<MsgUpdateClientConfig>): MsgUpdateClientConfig;
    fromAmino(object: MsgUpdateClientConfigAmino): MsgUpdateClientConfig;
    toAmino(message: MsgUpdateClientConfig): MsgUpdateClientConfigAmino;
    fromAminoMsg(object: MsgUpdateClientConfigAminoMsg): MsgUpdateClientConfig;
    toAminoMsg(message: MsgUpdateClientConfig): MsgUpdateClientConfigAminoMsg;
    fromProtoMsg(message: MsgUpdateClientConfigProtoMsg): MsgUpdateClientConfig;
    toProto(message: MsgUpdateClientConfig): Uint8Array;
    toProtoMsg(message: MsgUpdateClientConfig): MsgUpdateClientConfigProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgUpdateClientConfigResponse defines the MsgUpdateClientConfig response type.
 * @name MsgUpdateClientConfigResponse
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.MsgUpdateClientConfigResponse
 */
export declare const MsgUpdateClientConfigResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgUpdateClientConfigResponse;
    isAmino(o: any): o is MsgUpdateClientConfigResponseAmino;
    encode(_: MsgUpdateClientConfigResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateClientConfigResponse;
    fromPartial(_: DeepPartial<MsgUpdateClientConfigResponse>): MsgUpdateClientConfigResponse;
    fromAmino(_: MsgUpdateClientConfigResponseAmino): MsgUpdateClientConfigResponse;
    toAmino(_: MsgUpdateClientConfigResponse): MsgUpdateClientConfigResponseAmino;
    fromAminoMsg(object: MsgUpdateClientConfigResponseAminoMsg): MsgUpdateClientConfigResponse;
    toAminoMsg(message: MsgUpdateClientConfigResponse): MsgUpdateClientConfigResponseAminoMsg;
    fromProtoMsg(message: MsgUpdateClientConfigResponseProtoMsg): MsgUpdateClientConfigResponse;
    toProto(message: MsgUpdateClientConfigResponse): Uint8Array;
    toProtoMsg(message: MsgUpdateClientConfigResponse): MsgUpdateClientConfigResponseProtoMsg;
    registerTypeUrl(): void;
};
