import { Payload, PayloadAmino, Packet, PacketAmino, Acknowledgement, AcknowledgementAmino } from "./packet";
import { Height, HeightAmino } from "../../client/v1/client";
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/** ResponseResultType defines the possible outcomes of the execution of a message */
export declare enum ResponseResultType {
    /** RESPONSE_RESULT_TYPE_UNSPECIFIED - Default zero value enumeration */
    RESPONSE_RESULT_TYPE_UNSPECIFIED = 0,
    /** RESPONSE_RESULT_TYPE_NOOP - The message did not call the IBC application callbacks (because, for example, the packet had already been relayed) */
    RESPONSE_RESULT_TYPE_NOOP = 1,
    /** RESPONSE_RESULT_TYPE_SUCCESS - The message was executed successfully */
    RESPONSE_RESULT_TYPE_SUCCESS = 2,
    /** RESPONSE_RESULT_TYPE_FAILURE - The message was executed unsuccessfully */
    RESPONSE_RESULT_TYPE_FAILURE = 3,
    UNRECOGNIZED = -1
}
export declare const ResponseResultTypeAmino: typeof ResponseResultType;
export declare function responseResultTypeFromJSON(object: any): ResponseResultType;
export declare function responseResultTypeToJSON(object: ResponseResultType): string;
/**
 * MsgSendPacket sends an outgoing IBC packet.
 * @name MsgSendPacket
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgSendPacket
 */
export interface MsgSendPacket {
    sourceClient: string;
    timeoutTimestamp: bigint;
    payloads: Payload[];
    signer: string;
}
export interface MsgSendPacketProtoMsg {
    typeUrl: "/ibc.core.channel.v2.MsgSendPacket";
    value: Uint8Array;
}
/**
 * MsgSendPacket sends an outgoing IBC packet.
 * @name MsgSendPacketAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgSendPacket
 */
export interface MsgSendPacketAmino {
    source_client: string;
    timeout_timestamp: string;
    payloads: PayloadAmino[];
    signer: string;
}
export interface MsgSendPacketAminoMsg {
    type: "cosmos-sdk/MsgSendPacket";
    value: MsgSendPacketAmino;
}
/**
 * MsgSendPacketResponse defines the Msg/SendPacket response type.
 * @name MsgSendPacketResponse
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgSendPacketResponse
 */
export interface MsgSendPacketResponse {
    sequence: bigint;
}
export interface MsgSendPacketResponseProtoMsg {
    typeUrl: "/ibc.core.channel.v2.MsgSendPacketResponse";
    value: Uint8Array;
}
/**
 * MsgSendPacketResponse defines the Msg/SendPacket response type.
 * @name MsgSendPacketResponseAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgSendPacketResponse
 */
export interface MsgSendPacketResponseAmino {
    sequence: string;
}
export interface MsgSendPacketResponseAminoMsg {
    type: "cosmos-sdk/MsgSendPacketResponse";
    value: MsgSendPacketResponseAmino;
}
/**
 * MsgRecvPacket receives an incoming IBC packet.
 * @name MsgRecvPacket
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgRecvPacket
 */
export interface MsgRecvPacket {
    packet: Packet;
    proofCommitment: Uint8Array;
    proofHeight: Height;
    signer: string;
}
export interface MsgRecvPacketProtoMsg {
    typeUrl: "/ibc.core.channel.v2.MsgRecvPacket";
    value: Uint8Array;
}
/**
 * MsgRecvPacket receives an incoming IBC packet.
 * @name MsgRecvPacketAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgRecvPacket
 */
export interface MsgRecvPacketAmino {
    packet: PacketAmino;
    proof_commitment: string;
    proof_height: HeightAmino;
    signer: string;
}
export interface MsgRecvPacketAminoMsg {
    type: "cosmos-sdk/MsgRecvPacket";
    value: MsgRecvPacketAmino;
}
/**
 * MsgRecvPacketResponse defines the Msg/RecvPacket response type.
 * @name MsgRecvPacketResponse
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgRecvPacketResponse
 */
export interface MsgRecvPacketResponse {
    result: ResponseResultType;
}
export interface MsgRecvPacketResponseProtoMsg {
    typeUrl: "/ibc.core.channel.v2.MsgRecvPacketResponse";
    value: Uint8Array;
}
/**
 * MsgRecvPacketResponse defines the Msg/RecvPacket response type.
 * @name MsgRecvPacketResponseAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgRecvPacketResponse
 */
export interface MsgRecvPacketResponseAmino {
    result: ResponseResultType;
}
export interface MsgRecvPacketResponseAminoMsg {
    type: "cosmos-sdk/MsgRecvPacketResponse";
    value: MsgRecvPacketResponseAmino;
}
/**
 * MsgTimeout receives timed-out packet
 * @name MsgTimeout
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgTimeout
 */
export interface MsgTimeout {
    packet: Packet;
    proofUnreceived: Uint8Array;
    proofHeight: Height;
    signer: string;
}
export interface MsgTimeoutProtoMsg {
    typeUrl: "/ibc.core.channel.v2.MsgTimeout";
    value: Uint8Array;
}
/**
 * MsgTimeout receives timed-out packet
 * @name MsgTimeoutAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgTimeout
 */
export interface MsgTimeoutAmino {
    packet: PacketAmino;
    proof_unreceived: string;
    proof_height: HeightAmino;
    signer: string;
}
export interface MsgTimeoutAminoMsg {
    type: "cosmos-sdk/MsgTimeout";
    value: MsgTimeoutAmino;
}
/**
 * MsgTimeoutResponse defines the Msg/Timeout response type.
 * @name MsgTimeoutResponse
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgTimeoutResponse
 */
export interface MsgTimeoutResponse {
    result: ResponseResultType;
}
export interface MsgTimeoutResponseProtoMsg {
    typeUrl: "/ibc.core.channel.v2.MsgTimeoutResponse";
    value: Uint8Array;
}
/**
 * MsgTimeoutResponse defines the Msg/Timeout response type.
 * @name MsgTimeoutResponseAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgTimeoutResponse
 */
export interface MsgTimeoutResponseAmino {
    result: ResponseResultType;
}
export interface MsgTimeoutResponseAminoMsg {
    type: "cosmos-sdk/MsgTimeoutResponse";
    value: MsgTimeoutResponseAmino;
}
/**
 * MsgAcknowledgement receives incoming IBC acknowledgement.
 * @name MsgAcknowledgement
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgAcknowledgement
 */
export interface MsgAcknowledgement {
    packet: Packet;
    acknowledgement: Acknowledgement;
    proofAcked: Uint8Array;
    proofHeight: Height;
    signer: string;
}
export interface MsgAcknowledgementProtoMsg {
    typeUrl: "/ibc.core.channel.v2.MsgAcknowledgement";
    value: Uint8Array;
}
/**
 * MsgAcknowledgement receives incoming IBC acknowledgement.
 * @name MsgAcknowledgementAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgAcknowledgement
 */
export interface MsgAcknowledgementAmino {
    packet: PacketAmino;
    acknowledgement: AcknowledgementAmino;
    proof_acked: string;
    proof_height: HeightAmino;
    signer: string;
}
export interface MsgAcknowledgementAminoMsg {
    type: "cosmos-sdk/MsgAcknowledgement";
    value: MsgAcknowledgementAmino;
}
/**
 * MsgAcknowledgementResponse defines the Msg/Acknowledgement response type.
 * @name MsgAcknowledgementResponse
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgAcknowledgementResponse
 */
export interface MsgAcknowledgementResponse {
    result: ResponseResultType;
}
export interface MsgAcknowledgementResponseProtoMsg {
    typeUrl: "/ibc.core.channel.v2.MsgAcknowledgementResponse";
    value: Uint8Array;
}
/**
 * MsgAcknowledgementResponse defines the Msg/Acknowledgement response type.
 * @name MsgAcknowledgementResponseAmino
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgAcknowledgementResponse
 */
export interface MsgAcknowledgementResponseAmino {
    result: ResponseResultType;
}
export interface MsgAcknowledgementResponseAminoMsg {
    type: "cosmos-sdk/MsgAcknowledgementResponse";
    value: MsgAcknowledgementResponseAmino;
}
/**
 * MsgSendPacket sends an outgoing IBC packet.
 * @name MsgSendPacket
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgSendPacket
 */
export declare const MsgSendPacket: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgSendPacket;
    isAmino(o: any): o is MsgSendPacketAmino;
    encode(message: MsgSendPacket, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgSendPacket;
    fromPartial(object: DeepPartial<MsgSendPacket>): MsgSendPacket;
    fromAmino(object: MsgSendPacketAmino): MsgSendPacket;
    toAmino(message: MsgSendPacket): MsgSendPacketAmino;
    fromAminoMsg(object: MsgSendPacketAminoMsg): MsgSendPacket;
    toAminoMsg(message: MsgSendPacket): MsgSendPacketAminoMsg;
    fromProtoMsg(message: MsgSendPacketProtoMsg): MsgSendPacket;
    toProto(message: MsgSendPacket): Uint8Array;
    toProtoMsg(message: MsgSendPacket): MsgSendPacketProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgSendPacketResponse defines the Msg/SendPacket response type.
 * @name MsgSendPacketResponse
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgSendPacketResponse
 */
export declare const MsgSendPacketResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgSendPacketResponse;
    isAmino(o: any): o is MsgSendPacketResponseAmino;
    encode(message: MsgSendPacketResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgSendPacketResponse;
    fromPartial(object: DeepPartial<MsgSendPacketResponse>): MsgSendPacketResponse;
    fromAmino(object: MsgSendPacketResponseAmino): MsgSendPacketResponse;
    toAmino(message: MsgSendPacketResponse): MsgSendPacketResponseAmino;
    fromAminoMsg(object: MsgSendPacketResponseAminoMsg): MsgSendPacketResponse;
    toAminoMsg(message: MsgSendPacketResponse): MsgSendPacketResponseAminoMsg;
    fromProtoMsg(message: MsgSendPacketResponseProtoMsg): MsgSendPacketResponse;
    toProto(message: MsgSendPacketResponse): Uint8Array;
    toProtoMsg(message: MsgSendPacketResponse): MsgSendPacketResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgRecvPacket receives an incoming IBC packet.
 * @name MsgRecvPacket
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgRecvPacket
 */
export declare const MsgRecvPacket: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRecvPacket;
    isAmino(o: any): o is MsgRecvPacketAmino;
    encode(message: MsgRecvPacket, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRecvPacket;
    fromPartial(object: DeepPartial<MsgRecvPacket>): MsgRecvPacket;
    fromAmino(object: MsgRecvPacketAmino): MsgRecvPacket;
    toAmino(message: MsgRecvPacket): MsgRecvPacketAmino;
    fromAminoMsg(object: MsgRecvPacketAminoMsg): MsgRecvPacket;
    toAminoMsg(message: MsgRecvPacket): MsgRecvPacketAminoMsg;
    fromProtoMsg(message: MsgRecvPacketProtoMsg): MsgRecvPacket;
    toProto(message: MsgRecvPacket): Uint8Array;
    toProtoMsg(message: MsgRecvPacket): MsgRecvPacketProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgRecvPacketResponse defines the Msg/RecvPacket response type.
 * @name MsgRecvPacketResponse
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgRecvPacketResponse
 */
export declare const MsgRecvPacketResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRecvPacketResponse;
    isAmino(o: any): o is MsgRecvPacketResponseAmino;
    encode(message: MsgRecvPacketResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRecvPacketResponse;
    fromPartial(object: DeepPartial<MsgRecvPacketResponse>): MsgRecvPacketResponse;
    fromAmino(object: MsgRecvPacketResponseAmino): MsgRecvPacketResponse;
    toAmino(message: MsgRecvPacketResponse): MsgRecvPacketResponseAmino;
    fromAminoMsg(object: MsgRecvPacketResponseAminoMsg): MsgRecvPacketResponse;
    toAminoMsg(message: MsgRecvPacketResponse): MsgRecvPacketResponseAminoMsg;
    fromProtoMsg(message: MsgRecvPacketResponseProtoMsg): MsgRecvPacketResponse;
    toProto(message: MsgRecvPacketResponse): Uint8Array;
    toProtoMsg(message: MsgRecvPacketResponse): MsgRecvPacketResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgTimeout receives timed-out packet
 * @name MsgTimeout
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgTimeout
 */
export declare const MsgTimeout: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgTimeout;
    isAmino(o: any): o is MsgTimeoutAmino;
    encode(message: MsgTimeout, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgTimeout;
    fromPartial(object: DeepPartial<MsgTimeout>): MsgTimeout;
    fromAmino(object: MsgTimeoutAmino): MsgTimeout;
    toAmino(message: MsgTimeout): MsgTimeoutAmino;
    fromAminoMsg(object: MsgTimeoutAminoMsg): MsgTimeout;
    toAminoMsg(message: MsgTimeout): MsgTimeoutAminoMsg;
    fromProtoMsg(message: MsgTimeoutProtoMsg): MsgTimeout;
    toProto(message: MsgTimeout): Uint8Array;
    toProtoMsg(message: MsgTimeout): MsgTimeoutProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgTimeoutResponse defines the Msg/Timeout response type.
 * @name MsgTimeoutResponse
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgTimeoutResponse
 */
export declare const MsgTimeoutResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgTimeoutResponse;
    isAmino(o: any): o is MsgTimeoutResponseAmino;
    encode(message: MsgTimeoutResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgTimeoutResponse;
    fromPartial(object: DeepPartial<MsgTimeoutResponse>): MsgTimeoutResponse;
    fromAmino(object: MsgTimeoutResponseAmino): MsgTimeoutResponse;
    toAmino(message: MsgTimeoutResponse): MsgTimeoutResponseAmino;
    fromAminoMsg(object: MsgTimeoutResponseAminoMsg): MsgTimeoutResponse;
    toAminoMsg(message: MsgTimeoutResponse): MsgTimeoutResponseAminoMsg;
    fromProtoMsg(message: MsgTimeoutResponseProtoMsg): MsgTimeoutResponse;
    toProto(message: MsgTimeoutResponse): Uint8Array;
    toProtoMsg(message: MsgTimeoutResponse): MsgTimeoutResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgAcknowledgement receives incoming IBC acknowledgement.
 * @name MsgAcknowledgement
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgAcknowledgement
 */
export declare const MsgAcknowledgement: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgAcknowledgement;
    isAmino(o: any): o is MsgAcknowledgementAmino;
    encode(message: MsgAcknowledgement, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgAcknowledgement;
    fromPartial(object: DeepPartial<MsgAcknowledgement>): MsgAcknowledgement;
    fromAmino(object: MsgAcknowledgementAmino): MsgAcknowledgement;
    toAmino(message: MsgAcknowledgement): MsgAcknowledgementAmino;
    fromAminoMsg(object: MsgAcknowledgementAminoMsg): MsgAcknowledgement;
    toAminoMsg(message: MsgAcknowledgement): MsgAcknowledgementAminoMsg;
    fromProtoMsg(message: MsgAcknowledgementProtoMsg): MsgAcknowledgement;
    toProto(message: MsgAcknowledgement): Uint8Array;
    toProtoMsg(message: MsgAcknowledgement): MsgAcknowledgementProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgAcknowledgementResponse defines the Msg/Acknowledgement response type.
 * @name MsgAcknowledgementResponse
 * @package ibc.core.channel.v2
 * @see proto type: ibc.core.channel.v2.MsgAcknowledgementResponse
 */
export declare const MsgAcknowledgementResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgAcknowledgementResponse;
    isAmino(o: any): o is MsgAcknowledgementResponseAmino;
    encode(message: MsgAcknowledgementResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgAcknowledgementResponse;
    fromPartial(object: DeepPartial<MsgAcknowledgementResponse>): MsgAcknowledgementResponse;
    fromAmino(object: MsgAcknowledgementResponseAmino): MsgAcknowledgementResponse;
    toAmino(message: MsgAcknowledgementResponse): MsgAcknowledgementResponseAmino;
    fromAminoMsg(object: MsgAcknowledgementResponseAminoMsg): MsgAcknowledgementResponse;
    toAminoMsg(message: MsgAcknowledgementResponse): MsgAcknowledgementResponseAminoMsg;
    fromProtoMsg(message: MsgAcknowledgementResponseProtoMsg): MsgAcknowledgementResponse;
    toProto(message: MsgAcknowledgementResponse): Uint8Array;
    toProtoMsg(message: MsgAcknowledgementResponse): MsgAcknowledgementResponseProtoMsg;
    registerTypeUrl(): void;
};
