import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * MerklePath is the path used to verify commitment proofs, which can be an
 * arbitrary structured object (defined by a commitment type).
 * MerklePath is represented from root-to-leaf
 * @name MerklePath
 * @package ibc.core.commitment.v2
 * @see proto type: ibc.core.commitment.v2.MerklePath
 */
export interface MerklePath {
    keyPath: Uint8Array[];
}
export interface MerklePathProtoMsg {
    typeUrl: "/ibc.core.commitment.v2.MerklePath";
    value: Uint8Array;
}
/**
 * MerklePath is the path used to verify commitment proofs, which can be an
 * arbitrary structured object (defined by a commitment type).
 * MerklePath is represented from root-to-leaf
 * @name MerklePathAmino
 * @package ibc.core.commitment.v2
 * @see proto type: ibc.core.commitment.v2.MerklePath
 */
export interface MerklePathAmino {
    key_path: string[];
}
export interface MerklePathAminoMsg {
    type: "cosmos-sdk/MerklePath";
    value: MerklePathAmino;
}
/**
 * MerklePath is the path used to verify commitment proofs, which can be an
 * arbitrary structured object (defined by a commitment type).
 * MerklePath is represented from root-to-leaf
 * @name MerklePath
 * @package ibc.core.commitment.v2
 * @see proto type: ibc.core.commitment.v2.MerklePath
 */
export declare const MerklePath: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MerklePath;
    isAmino(o: any): o is MerklePathAmino;
    encode(message: MerklePath, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MerklePath;
    fromPartial(object: DeepPartial<MerklePath>): MerklePath;
    fromAmino(object: MerklePathAmino): MerklePath;
    toAmino(message: MerklePath): MerklePathAmino;
    fromAminoMsg(object: MerklePathAminoMsg): MerklePath;
    toAminoMsg(message: MerklePath): MerklePathAminoMsg;
    fromProtoMsg(message: MerklePathProtoMsg): MerklePath;
    toProto(message: MerklePath): Uint8Array;
    toProtoMsg(message: MerklePath): MerklePathProtoMsg;
    registerTypeUrl(): void;
};
