import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * Snapshot contains Tendermint state sync snapshot info.
 * @name Snapshot
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.Snapshot
 */
export interface Snapshot {
    height: bigint;
    format: number;
    chunks: number;
    hash: Uint8Array;
    metadata: Metadata;
}
export interface SnapshotProtoMsg {
    typeUrl: "/cosmos.store.snapshots.v2.Snapshot";
    value: Uint8Array;
}
/**
 * Snapshot contains Tendermint state sync snapshot info.
 * @name SnapshotAmino
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.Snapshot
 */
export interface SnapshotAmino {
    height: string;
    format: number;
    chunks: number;
    hash: string;
    metadata: MetadataAmino;
}
export interface SnapshotAminoMsg {
    type: "cosmos-sdk/Snapshot";
    value: SnapshotAmino;
}
/**
 * Metadata contains SDK-specific snapshot metadata.
 * @name Metadata
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.Metadata
 */
export interface Metadata {
    /**
     * SHA-256 chunk hashes
     */
    chunkHashes: Uint8Array[];
}
export interface MetadataProtoMsg {
    typeUrl: "/cosmos.store.snapshots.v2.Metadata";
    value: Uint8Array;
}
/**
 * Metadata contains SDK-specific snapshot metadata.
 * @name MetadataAmino
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.Metadata
 */
export interface MetadataAmino {
    /**
     * SHA-256 chunk hashes
     */
    chunk_hashes: string[];
}
export interface MetadataAminoMsg {
    type: "cosmos-sdk/Metadata";
    value: MetadataAmino;
}
/**
 * SnapshotItem is an item contained in a rootmulti.Store snapshot.
 * @name SnapshotItem
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotItem
 */
export interface SnapshotItem {
    store?: SnapshotStoreItem;
    iavl?: SnapshotIAVLItem;
    extension?: SnapshotExtensionMeta;
    extensionPayload?: SnapshotExtensionPayload;
}
export interface SnapshotItemProtoMsg {
    typeUrl: "/cosmos.store.snapshots.v2.SnapshotItem";
    value: Uint8Array;
}
/**
 * SnapshotItem is an item contained in a rootmulti.Store snapshot.
 * @name SnapshotItemAmino
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotItem
 */
export interface SnapshotItemAmino {
    store?: SnapshotStoreItemAmino;
    iavl?: SnapshotIAVLItemAmino;
    extension?: SnapshotExtensionMetaAmino;
    extension_payload?: SnapshotExtensionPayloadAmino;
}
export interface SnapshotItemAminoMsg {
    type: "cosmos-sdk/SnapshotItem";
    value: SnapshotItemAmino;
}
/**
 * SnapshotStoreItem contains metadata about a snapshotted store.
 * @name SnapshotStoreItem
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotStoreItem
 */
export interface SnapshotStoreItem {
    name: string;
}
export interface SnapshotStoreItemProtoMsg {
    typeUrl: "/cosmos.store.snapshots.v2.SnapshotStoreItem";
    value: Uint8Array;
}
/**
 * SnapshotStoreItem contains metadata about a snapshotted store.
 * @name SnapshotStoreItemAmino
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotStoreItem
 */
export interface SnapshotStoreItemAmino {
    name: string;
}
export interface SnapshotStoreItemAminoMsg {
    type: "cosmos-sdk/SnapshotStoreItem";
    value: SnapshotStoreItemAmino;
}
/**
 * SnapshotIAVLItem is an exported IAVL node.
 * @name SnapshotIAVLItem
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotIAVLItem
 */
export interface SnapshotIAVLItem {
    key: Uint8Array;
    value: Uint8Array;
    /**
     * version is block height
     */
    version: bigint;
    /**
     * height is depth of the tree.
     */
    height: number;
}
export interface SnapshotIAVLItemProtoMsg {
    typeUrl: "/cosmos.store.snapshots.v2.SnapshotIAVLItem";
    value: Uint8Array;
}
/**
 * SnapshotIAVLItem is an exported IAVL node.
 * @name SnapshotIAVLItemAmino
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotIAVLItem
 */
export interface SnapshotIAVLItemAmino {
    key: string;
    value: string;
    /**
     * version is block height
     */
    version: string;
    /**
     * height is depth of the tree.
     */
    height: number;
}
export interface SnapshotIAVLItemAminoMsg {
    type: "cosmos-sdk/SnapshotIAVLItem";
    value: SnapshotIAVLItemAmino;
}
/**
 * SnapshotExtensionMeta contains metadata about an external snapshotter.
 * @name SnapshotExtensionMeta
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotExtensionMeta
 */
export interface SnapshotExtensionMeta {
    name: string;
    format: number;
}
export interface SnapshotExtensionMetaProtoMsg {
    typeUrl: "/cosmos.store.snapshots.v2.SnapshotExtensionMeta";
    value: Uint8Array;
}
/**
 * SnapshotExtensionMeta contains metadata about an external snapshotter.
 * @name SnapshotExtensionMetaAmino
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotExtensionMeta
 */
export interface SnapshotExtensionMetaAmino {
    name: string;
    format: number;
}
export interface SnapshotExtensionMetaAminoMsg {
    type: "cosmos-sdk/SnapshotExtensionMeta";
    value: SnapshotExtensionMetaAmino;
}
/**
 * SnapshotExtensionPayload contains payloads of an external snapshotter.
 * @name SnapshotExtensionPayload
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotExtensionPayload
 */
export interface SnapshotExtensionPayload {
    payload: Uint8Array;
}
export interface SnapshotExtensionPayloadProtoMsg {
    typeUrl: "/cosmos.store.snapshots.v2.SnapshotExtensionPayload";
    value: Uint8Array;
}
/**
 * SnapshotExtensionPayload contains payloads of an external snapshotter.
 * @name SnapshotExtensionPayloadAmino
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotExtensionPayload
 */
export interface SnapshotExtensionPayloadAmino {
    payload: string;
}
export interface SnapshotExtensionPayloadAminoMsg {
    type: "cosmos-sdk/SnapshotExtensionPayload";
    value: SnapshotExtensionPayloadAmino;
}
/**
 * Snapshot contains Tendermint state sync snapshot info.
 * @name Snapshot
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.Snapshot
 */
export declare const Snapshot: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Snapshot;
    isAmino(o: any): o is SnapshotAmino;
    encode(message: Snapshot, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Snapshot;
    fromPartial(object: DeepPartial<Snapshot>): Snapshot;
    fromAmino(object: SnapshotAmino): Snapshot;
    toAmino(message: Snapshot): SnapshotAmino;
    fromAminoMsg(object: SnapshotAminoMsg): Snapshot;
    toAminoMsg(message: Snapshot): SnapshotAminoMsg;
    fromProtoMsg(message: SnapshotProtoMsg): Snapshot;
    toProto(message: Snapshot): Uint8Array;
    toProtoMsg(message: Snapshot): SnapshotProtoMsg;
    registerTypeUrl(): void;
};
/**
 * Metadata contains SDK-specific snapshot metadata.
 * @name Metadata
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.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;
};
/**
 * SnapshotItem is an item contained in a rootmulti.Store snapshot.
 * @name SnapshotItem
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotItem
 */
export declare const SnapshotItem: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is SnapshotItem;
    isAmino(o: any): o is SnapshotItemAmino;
    encode(message: SnapshotItem, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): SnapshotItem;
    fromPartial(object: DeepPartial<SnapshotItem>): SnapshotItem;
    fromAmino(object: SnapshotItemAmino): SnapshotItem;
    toAmino(message: SnapshotItem): SnapshotItemAmino;
    fromAminoMsg(object: SnapshotItemAminoMsg): SnapshotItem;
    toAminoMsg(message: SnapshotItem): SnapshotItemAminoMsg;
    fromProtoMsg(message: SnapshotItemProtoMsg): SnapshotItem;
    toProto(message: SnapshotItem): Uint8Array;
    toProtoMsg(message: SnapshotItem): SnapshotItemProtoMsg;
    registerTypeUrl(): void;
};
/**
 * SnapshotStoreItem contains metadata about a snapshotted store.
 * @name SnapshotStoreItem
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotStoreItem
 */
export declare const SnapshotStoreItem: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is SnapshotStoreItem;
    isAmino(o: any): o is SnapshotStoreItemAmino;
    encode(message: SnapshotStoreItem, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): SnapshotStoreItem;
    fromPartial(object: DeepPartial<SnapshotStoreItem>): SnapshotStoreItem;
    fromAmino(object: SnapshotStoreItemAmino): SnapshotStoreItem;
    toAmino(message: SnapshotStoreItem): SnapshotStoreItemAmino;
    fromAminoMsg(object: SnapshotStoreItemAminoMsg): SnapshotStoreItem;
    toAminoMsg(message: SnapshotStoreItem): SnapshotStoreItemAminoMsg;
    fromProtoMsg(message: SnapshotStoreItemProtoMsg): SnapshotStoreItem;
    toProto(message: SnapshotStoreItem): Uint8Array;
    toProtoMsg(message: SnapshotStoreItem): SnapshotStoreItemProtoMsg;
    registerTypeUrl(): void;
};
/**
 * SnapshotIAVLItem is an exported IAVL node.
 * @name SnapshotIAVLItem
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotIAVLItem
 */
export declare const SnapshotIAVLItem: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is SnapshotIAVLItem;
    isAmino(o: any): o is SnapshotIAVLItemAmino;
    encode(message: SnapshotIAVLItem, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): SnapshotIAVLItem;
    fromPartial(object: DeepPartial<SnapshotIAVLItem>): SnapshotIAVLItem;
    fromAmino(object: SnapshotIAVLItemAmino): SnapshotIAVLItem;
    toAmino(message: SnapshotIAVLItem): SnapshotIAVLItemAmino;
    fromAminoMsg(object: SnapshotIAVLItemAminoMsg): SnapshotIAVLItem;
    toAminoMsg(message: SnapshotIAVLItem): SnapshotIAVLItemAminoMsg;
    fromProtoMsg(message: SnapshotIAVLItemProtoMsg): SnapshotIAVLItem;
    toProto(message: SnapshotIAVLItem): Uint8Array;
    toProtoMsg(message: SnapshotIAVLItem): SnapshotIAVLItemProtoMsg;
    registerTypeUrl(): void;
};
/**
 * SnapshotExtensionMeta contains metadata about an external snapshotter.
 * @name SnapshotExtensionMeta
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotExtensionMeta
 */
export declare const SnapshotExtensionMeta: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is SnapshotExtensionMeta;
    isAmino(o: any): o is SnapshotExtensionMetaAmino;
    encode(message: SnapshotExtensionMeta, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): SnapshotExtensionMeta;
    fromPartial(object: DeepPartial<SnapshotExtensionMeta>): SnapshotExtensionMeta;
    fromAmino(object: SnapshotExtensionMetaAmino): SnapshotExtensionMeta;
    toAmino(message: SnapshotExtensionMeta): SnapshotExtensionMetaAmino;
    fromAminoMsg(object: SnapshotExtensionMetaAminoMsg): SnapshotExtensionMeta;
    toAminoMsg(message: SnapshotExtensionMeta): SnapshotExtensionMetaAminoMsg;
    fromProtoMsg(message: SnapshotExtensionMetaProtoMsg): SnapshotExtensionMeta;
    toProto(message: SnapshotExtensionMeta): Uint8Array;
    toProtoMsg(message: SnapshotExtensionMeta): SnapshotExtensionMetaProtoMsg;
    registerTypeUrl(): void;
};
/**
 * SnapshotExtensionPayload contains payloads of an external snapshotter.
 * @name SnapshotExtensionPayload
 * @package cosmos.store.snapshots.v2
 * @see proto type: cosmos.store.snapshots.v2.SnapshotExtensionPayload
 */
export declare const SnapshotExtensionPayload: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is SnapshotExtensionPayload;
    isAmino(o: any): o is SnapshotExtensionPayloadAmino;
    encode(message: SnapshotExtensionPayload, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): SnapshotExtensionPayload;
    fromPartial(object: DeepPartial<SnapshotExtensionPayload>): SnapshotExtensionPayload;
    fromAmino(object: SnapshotExtensionPayloadAmino): SnapshotExtensionPayload;
    toAmino(message: SnapshotExtensionPayload): SnapshotExtensionPayloadAmino;
    fromAminoMsg(object: SnapshotExtensionPayloadAminoMsg): SnapshotExtensionPayload;
    toAminoMsg(message: SnapshotExtensionPayload): SnapshotExtensionPayloadAminoMsg;
    fromProtoMsg(message: SnapshotExtensionPayloadProtoMsg): SnapshotExtensionPayload;
    toProto(message: SnapshotExtensionPayload): Uint8Array;
    toProtoMsg(message: SnapshotExtensionPayload): SnapshotExtensionPayloadProtoMsg;
    registerTypeUrl(): void;
};
