import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * GenesisState defines the ibc channel/v2 submodule's genesis state.
 * @name GenesisState
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.GenesisState
 */
export interface GenesisState {
    acknowledgements: PacketState[];
    commitments: PacketState[];
    receipts: PacketState[];
    asyncPackets: PacketState[];
    sendSequences: PacketSequence[];
}
export interface GenesisStateProtoMsg {
    typeUrl: "/ibc.core.channel.v2.GenesisState";
    value: Uint8Array;
}
/**
 * GenesisState defines the ibc channel/v2 submodule's genesis state.
 * @name GenesisStateAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.GenesisState
 */
export interface GenesisStateAmino {
    acknowledgements: PacketStateAmino[];
    commitments: PacketStateAmino[];
    receipts: PacketStateAmino[];
    async_packets: PacketStateAmino[];
    send_sequences: PacketSequenceAmino[];
}
export interface GenesisStateAminoMsg {
    type: "cosmos-sdk/GenesisState";
    value: GenesisStateAmino;
}
/**
 * PacketState defines the generic type necessary to retrieve and store
 * packet commitments, acknowledgements, and receipts.
 * Caller is responsible for knowing the context necessary to interpret this
 * state as a commitment, acknowledgement, or a receipt.
 * @name PacketState
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.PacketState
 */
export interface PacketState {
    /**
     * client unique identifier.
     */
    clientId: string;
    /**
     * packet sequence.
     */
    sequence: bigint;
    /**
     * embedded data that represents packet state.
     */
    data: Uint8Array;
}
export interface PacketStateProtoMsg {
    typeUrl: "/ibc.core.channel.v2.PacketState";
    value: Uint8Array;
}
/**
 * PacketState defines the generic type necessary to retrieve and store
 * packet commitments, acknowledgements, and receipts.
 * Caller is responsible for knowing the context necessary to interpret this
 * state as a commitment, acknowledgement, or a receipt.
 * @name PacketStateAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.PacketState
 */
export interface PacketStateAmino {
    /**
     * client unique identifier.
     */
    client_id: string;
    /**
     * packet sequence.
     */
    sequence: string;
    /**
     * embedded data that represents packet state.
     */
    data: string;
}
export interface PacketStateAminoMsg {
    type: "cosmos-sdk/PacketState";
    value: PacketStateAmino;
}
/**
 * PacketSequence defines the genesis type necessary to retrieve and store next send sequences.
 * @name PacketSequence
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.PacketSequence
 */
export interface PacketSequence {
    /**
     * client unique identifier.
     */
    clientId: string;
    /**
     * packet sequence
     */
    sequence: bigint;
}
export interface PacketSequenceProtoMsg {
    typeUrl: "/ibc.core.channel.v2.PacketSequence";
    value: Uint8Array;
}
/**
 * PacketSequence defines the genesis type necessary to retrieve and store next send sequences.
 * @name PacketSequenceAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.PacketSequence
 */
export interface PacketSequenceAmino {
    /**
     * client unique identifier.
     */
    client_id: string;
    /**
     * packet sequence
     */
    sequence: string;
}
export interface PacketSequenceAminoMsg {
    type: "cosmos-sdk/PacketSequence";
    value: PacketSequenceAmino;
}
/**
 * GenesisState defines the ibc channel/v2 submodule's genesis state.
 * @name GenesisState
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.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;
};
/**
 * PacketState defines the generic type necessary to retrieve and store
 * packet commitments, acknowledgements, and receipts.
 * Caller is responsible for knowing the context necessary to interpret this
 * state as a commitment, acknowledgement, or a receipt.
 * @name PacketState
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.PacketState
 */
export declare const PacketState: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is PacketState;
    isAmino(o: any): o is PacketStateAmino;
    encode(message: PacketState, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): PacketState;
    fromPartial(object: DeepPartial<PacketState>): PacketState;
    fromAmino(object: PacketStateAmino): PacketState;
    toAmino(message: PacketState): PacketStateAmino;
    fromAminoMsg(object: PacketStateAminoMsg): PacketState;
    toAminoMsg(message: PacketState): PacketStateAminoMsg;
    fromProtoMsg(message: PacketStateProtoMsg): PacketState;
    toProto(message: PacketState): Uint8Array;
    toProtoMsg(message: PacketState): PacketStateProtoMsg;
    registerTypeUrl(): void;
};
/**
 * PacketSequence defines the genesis type necessary to retrieve and store next send sequences.
 * @name PacketSequence
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.PacketSequence
 */
export declare const PacketSequence: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is PacketSequence;
    isAmino(o: any): o is PacketSequenceAmino;
    encode(message: PacketSequence, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): PacketSequence;
    fromPartial(object: DeepPartial<PacketSequence>): PacketSequence;
    fromAmino(object: PacketSequenceAmino): PacketSequence;
    toAmino(message: PacketSequence): PacketSequenceAmino;
    fromAminoMsg(object: PacketSequenceAminoMsg): PacketSequence;
    toAminoMsg(message: PacketSequence): PacketSequenceAminoMsg;
    fromProtoMsg(message: PacketSequenceProtoMsg): PacketSequence;
    toProto(message: PacketSequence): Uint8Array;
    toProtoMsg(message: PacketSequence): PacketSequenceProtoMsg;
    registerTypeUrl(): void;
};
