import { CounterpartyInfo, CounterpartyInfoAmino } from "./counterparty";
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * GenesisCounterpartyInfo defines the state associating a client with a counterparty.
 * @name GenesisCounterpartyInfo
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.GenesisCounterpartyInfo
 */
export interface GenesisCounterpartyInfo {
    /**
     * ClientId is the ID of the given client.
     */
    clientId: string;
    /**
     * CounterpartyInfo is the counterparty info of the given client.
     */
    counterpartyInfo: CounterpartyInfo;
}
export interface GenesisCounterpartyInfoProtoMsg {
    typeUrl: "/ibc.core.client.v2.GenesisCounterpartyInfo";
    value: Uint8Array;
}
/**
 * GenesisCounterpartyInfo defines the state associating a client with a counterparty.
 * @name GenesisCounterpartyInfoAmino
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.GenesisCounterpartyInfo
 */
export interface GenesisCounterpartyInfoAmino {
    /**
     * ClientId is the ID of the given client.
     */
    client_id: string;
    /**
     * CounterpartyInfo is the counterparty info of the given client.
     */
    counterparty_info: CounterpartyInfoAmino;
}
export interface GenesisCounterpartyInfoAminoMsg {
    type: "cosmos-sdk/GenesisCounterpartyInfo";
    value: GenesisCounterpartyInfoAmino;
}
/**
 * GenesisState defines the ibc client v2 submodule's genesis state.
 * @name GenesisState
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.GenesisState
 */
export interface GenesisState {
    /**
     * counterparty info for each client
     */
    counterpartyInfos: GenesisCounterpartyInfo[];
}
export interface GenesisStateProtoMsg {
    typeUrl: "/ibc.core.client.v2.GenesisState";
    value: Uint8Array;
}
/**
 * GenesisState defines the ibc client v2 submodule's genesis state.
 * @name GenesisStateAmino
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.GenesisState
 */
export interface GenesisStateAmino {
    /**
     * counterparty info for each client
     */
    counterparty_infos: GenesisCounterpartyInfoAmino[];
}
export interface GenesisStateAminoMsg {
    type: "cosmos-sdk/GenesisState";
    value: GenesisStateAmino;
}
/**
 * GenesisCounterpartyInfo defines the state associating a client with a counterparty.
 * @name GenesisCounterpartyInfo
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.GenesisCounterpartyInfo
 */
export declare const GenesisCounterpartyInfo: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is GenesisCounterpartyInfo;
    isAmino(o: any): o is GenesisCounterpartyInfoAmino;
    encode(message: GenesisCounterpartyInfo, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GenesisCounterpartyInfo;
    fromPartial(object: DeepPartial<GenesisCounterpartyInfo>): GenesisCounterpartyInfo;
    fromAmino(object: GenesisCounterpartyInfoAmino): GenesisCounterpartyInfo;
    toAmino(message: GenesisCounterpartyInfo): GenesisCounterpartyInfoAmino;
    fromAminoMsg(object: GenesisCounterpartyInfoAminoMsg): GenesisCounterpartyInfo;
    toAminoMsg(message: GenesisCounterpartyInfo): GenesisCounterpartyInfoAminoMsg;
    fromProtoMsg(message: GenesisCounterpartyInfoProtoMsg): GenesisCounterpartyInfo;
    toProto(message: GenesisCounterpartyInfo): Uint8Array;
    toProtoMsg(message: GenesisCounterpartyInfo): GenesisCounterpartyInfoProtoMsg;
    registerTypeUrl(): void;
};
/**
 * GenesisState defines the ibc client v2 submodule's genesis state.
 * @name GenesisState
 * @package ibc.core.client.v2
 * @see proto type: ibc.core.client.v2.GenesisState
 */
export declare const GenesisState: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is GenesisState;
    isAmino(o: any): o is GenesisStateAmino;
    encode(message: GenesisState, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GenesisState;
    fromPartial(object: DeepPartial<GenesisState>): GenesisState;
    fromAmino(object: GenesisStateAmino): GenesisState;
    toAmino(message: GenesisState): GenesisStateAmino;
    fromAminoMsg(object: GenesisStateAminoMsg): GenesisState;
    toAminoMsg(message: GenesisState): GenesisStateAminoMsg;
    fromProtoMsg(message: GenesisStateProtoMsg): GenesisState;
    toProto(message: GenesisState): Uint8Array;
    toProtoMsg(message: GenesisState): GenesisStateProtoMsg;
    registerTypeUrl(): void;
};
