import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * @name GenesisState_InFlightPacketsEntry
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.undefined
 */
export interface GenesisState_InFlightPacketsEntry {
    key: string;
    value?: InFlightPacket;
}
export interface GenesisState_InFlightPacketsEntryProtoMsg {
    typeUrl: string;
    value: Uint8Array;
}
/**
 * @name GenesisState_InFlightPacketsEntryAmino
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.GenesisState_InFlightPacketsEntry
 */
export interface GenesisState_InFlightPacketsEntryAmino {
    key: string;
    value?: InFlightPacketAmino;
}
export interface GenesisState_InFlightPacketsEntryAminoMsg {
    type: string;
    value: GenesisState_InFlightPacketsEntryAmino;
}
/**
 * GenesisState defines the packetforward genesis state
 * @name GenesisState
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.GenesisState
 */
export interface GenesisState {
    /**
     * key - information about forwarded packet: src_channel
     * (parsedReceiver.Channel), src_port (parsedReceiver.Port), sequence value -
     * information about original packet for refunding if necessary: retries,
     * srcPacketSender, srcPacket.DestinationChannel, srcPacket.DestinationPort
     */
    inFlightPackets: {
        [key: string]: InFlightPacket;
    };
}
export interface GenesisStateProtoMsg {
    typeUrl: "/ibc.applications.packet_forward_middleware.v1.GenesisState";
    value: Uint8Array;
}
/**
 * GenesisState defines the packetforward genesis state
 * @name GenesisStateAmino
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.GenesisState
 */
export interface GenesisStateAmino {
    /**
     * key - information about forwarded packet: src_channel
     * (parsedReceiver.Channel), src_port (parsedReceiver.Port), sequence value -
     * information about original packet for refunding if necessary: retries,
     * srcPacketSender, srcPacket.DestinationChannel, srcPacket.DestinationPort
     */
    in_flight_packets: {
        [key: string]: InFlightPacketAmino;
    };
}
export interface GenesisStateAminoMsg {
    type: "cosmos-sdk/GenesisState";
    value: GenesisStateAmino;
}
/**
 * InFlightPacket contains information about original packet for
 * writing the acknowledgement and refunding if necessary.
 * @name InFlightPacket
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.InFlightPacket
 */
export interface InFlightPacket {
    originalSenderAddress: string;
    refundChannelId: string;
    refundPortId: string;
    packetSrcChannelId: string;
    packetSrcPortId: string;
    packetTimeoutTimestamp: bigint;
    packetTimeoutHeight: string;
    packetData: Uint8Array;
    refundSequence: bigint;
    retriesRemaining: number;
    timeout: bigint;
    nonrefundable: boolean;
}
export interface InFlightPacketProtoMsg {
    typeUrl: "/ibc.applications.packet_forward_middleware.v1.InFlightPacket";
    value: Uint8Array;
}
/**
 * InFlightPacket contains information about original packet for
 * writing the acknowledgement and refunding if necessary.
 * @name InFlightPacketAmino
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.InFlightPacket
 */
export interface InFlightPacketAmino {
    original_sender_address: string;
    refund_channel_id: string;
    refund_port_id: string;
    packet_src_channel_id: string;
    packet_src_port_id: string;
    packet_timeout_timestamp: string;
    packet_timeout_height: string;
    packet_data: string;
    refund_sequence: string;
    retries_remaining: number;
    timeout: string;
    nonrefundable: boolean;
}
export interface InFlightPacketAminoMsg {
    type: "cosmos-sdk/InFlightPacket";
    value: InFlightPacketAmino;
}
/**
 * @name GenesisState_InFlightPacketsEntry
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.undefined
 */
export declare const GenesisState_InFlightPacketsEntry: {
    encode(message: GenesisState_InFlightPacketsEntry, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GenesisState_InFlightPacketsEntry;
    fromPartial(object: DeepPartial<GenesisState_InFlightPacketsEntry>): GenesisState_InFlightPacketsEntry;
    fromAmino(object: GenesisState_InFlightPacketsEntryAmino): GenesisState_InFlightPacketsEntry;
    toAmino(message: GenesisState_InFlightPacketsEntry): GenesisState_InFlightPacketsEntryAmino;
    fromAminoMsg(object: GenesisState_InFlightPacketsEntryAminoMsg): GenesisState_InFlightPacketsEntry;
    fromProtoMsg(message: GenesisState_InFlightPacketsEntryProtoMsg): GenesisState_InFlightPacketsEntry;
    toProto(message: GenesisState_InFlightPacketsEntry): Uint8Array;
    registerTypeUrl(): void;
};
/**
 * GenesisState defines the packetforward genesis state
 * @name GenesisState
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.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;
};
/**
 * InFlightPacket contains information about original packet for
 * writing the acknowledgement and refunding if necessary.
 * @name InFlightPacket
 * @package ibc.applications.packet_forward_middleware.v1
 * @see proto type: ibc.applications.packet_forward_middleware.v1.InFlightPacket
 */
export declare const InFlightPacket: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is InFlightPacket;
    isAmino(o: any): o is InFlightPacketAmino;
    encode(message: InFlightPacket, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): InFlightPacket;
    fromPartial(object: DeepPartial<InFlightPacket>): InFlightPacket;
    fromAmino(object: InFlightPacketAmino): InFlightPacket;
    toAmino(message: InFlightPacket): InFlightPacketAmino;
    fromAminoMsg(object: InFlightPacketAminoMsg): InFlightPacket;
    toAminoMsg(message: InFlightPacket): InFlightPacketAminoMsg;
    fromProtoMsg(message: InFlightPacketProtoMsg): InFlightPacket;
    toProto(message: InFlightPacket): Uint8Array;
    toProtoMsg(message: InFlightPacket): InFlightPacketProtoMsg;
    registerTypeUrl(): void;
};
