import { Fee, FeeAmino, PacketFee, PacketFeeAmino } from "./fee";
import { PacketId, PacketIdAmino } from "../../../core/channel/v1/channel";
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * MsgRegisterPayee defines the request type for the RegisterPayee rpc
 * @name MsgRegisterPayee
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterPayee
 */
export interface MsgRegisterPayee {
    /**
     * unique port identifier
     */
    portId: string;
    /**
     * unique channel identifier
     */
    channelId: string;
    /**
     * the relayer address
     */
    relayer: string;
    /**
     * the payee address
     */
    payee: string;
}
export interface MsgRegisterPayeeProtoMsg {
    typeUrl: "/ibc.applications.fee.v1.MsgRegisterPayee";
    value: Uint8Array;
}
/**
 * MsgRegisterPayee defines the request type for the RegisterPayee rpc
 * @name MsgRegisterPayeeAmino
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterPayee
 */
export interface MsgRegisterPayeeAmino {
    /**
     * unique port identifier
     */
    port_id: string;
    /**
     * unique channel identifier
     */
    channel_id: string;
    /**
     * the relayer address
     */
    relayer: string;
    /**
     * the payee address
     */
    payee: string;
}
export interface MsgRegisterPayeeAminoMsg {
    type: "cosmos-sdk/MsgRegisterPayee";
    value: MsgRegisterPayeeAmino;
}
/**
 * MsgRegisterPayeeResponse defines the response type for the RegisterPayee rpc
 * @name MsgRegisterPayeeResponse
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterPayeeResponse
 */
export interface MsgRegisterPayeeResponse {
}
export interface MsgRegisterPayeeResponseProtoMsg {
    typeUrl: "/ibc.applications.fee.v1.MsgRegisterPayeeResponse";
    value: Uint8Array;
}
/**
 * MsgRegisterPayeeResponse defines the response type for the RegisterPayee rpc
 * @name MsgRegisterPayeeResponseAmino
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterPayeeResponse
 */
export interface MsgRegisterPayeeResponseAmino {
}
export interface MsgRegisterPayeeResponseAminoMsg {
    type: "cosmos-sdk/MsgRegisterPayeeResponse";
    value: MsgRegisterPayeeResponseAmino;
}
/**
 * MsgRegisterCounterpartyPayee defines the request type for the RegisterCounterpartyPayee rpc
 * @name MsgRegisterCounterpartyPayee
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterCounterpartyPayee
 */
export interface MsgRegisterCounterpartyPayee {
    /**
     * unique port identifier
     */
    portId: string;
    /**
     * unique channel identifier
     */
    channelId: string;
    /**
     * the relayer address
     */
    relayer: string;
    /**
     * the counterparty payee address
     */
    counterpartyPayee: string;
}
export interface MsgRegisterCounterpartyPayeeProtoMsg {
    typeUrl: "/ibc.applications.fee.v1.MsgRegisterCounterpartyPayee";
    value: Uint8Array;
}
/**
 * MsgRegisterCounterpartyPayee defines the request type for the RegisterCounterpartyPayee rpc
 * @name MsgRegisterCounterpartyPayeeAmino
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterCounterpartyPayee
 */
export interface MsgRegisterCounterpartyPayeeAmino {
    /**
     * unique port identifier
     */
    port_id: string;
    /**
     * unique channel identifier
     */
    channel_id: string;
    /**
     * the relayer address
     */
    relayer: string;
    /**
     * the counterparty payee address
     */
    counterparty_payee: string;
}
export interface MsgRegisterCounterpartyPayeeAminoMsg {
    type: "cosmos-sdk/MsgRegisterCounterpartyPayee";
    value: MsgRegisterCounterpartyPayeeAmino;
}
/**
 * MsgRegisterCounterpartyPayeeResponse defines the response type for the RegisterCounterpartyPayee rpc
 * @name MsgRegisterCounterpartyPayeeResponse
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterCounterpartyPayeeResponse
 */
export interface MsgRegisterCounterpartyPayeeResponse {
}
export interface MsgRegisterCounterpartyPayeeResponseProtoMsg {
    typeUrl: "/ibc.applications.fee.v1.MsgRegisterCounterpartyPayeeResponse";
    value: Uint8Array;
}
/**
 * MsgRegisterCounterpartyPayeeResponse defines the response type for the RegisterCounterpartyPayee rpc
 * @name MsgRegisterCounterpartyPayeeResponseAmino
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterCounterpartyPayeeResponse
 */
export interface MsgRegisterCounterpartyPayeeResponseAmino {
}
export interface MsgRegisterCounterpartyPayeeResponseAminoMsg {
    type: "cosmos-sdk/MsgRegisterCounterpartyPayeeResponse";
    value: MsgRegisterCounterpartyPayeeResponseAmino;
}
/**
 * MsgPayPacketFee defines the request type for the PayPacketFee rpc
 * This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be
 * paid for
 * @name MsgPayPacketFee
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFee
 */
export interface MsgPayPacketFee {
    /**
     * fee encapsulates the recv, ack and timeout fees associated with an IBC packet
     */
    fee: Fee;
    /**
     * the source port unique identifier
     */
    sourcePortId: string;
    /**
     * the source channel unique identifier
     */
    sourceChannelId: string;
    /**
     * account address to refund fee if necessary
     */
    signer: string;
    /**
     * optional list of relayers permitted to the receive packet fees
     */
    relayers: string[];
}
export interface MsgPayPacketFeeProtoMsg {
    typeUrl: "/ibc.applications.fee.v1.MsgPayPacketFee";
    value: Uint8Array;
}
/**
 * MsgPayPacketFee defines the request type for the PayPacketFee rpc
 * This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be
 * paid for
 * @name MsgPayPacketFeeAmino
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFee
 */
export interface MsgPayPacketFeeAmino {
    /**
     * fee encapsulates the recv, ack and timeout fees associated with an IBC packet
     */
    fee: FeeAmino;
    /**
     * the source port unique identifier
     */
    source_port_id: string;
    /**
     * the source channel unique identifier
     */
    source_channel_id: string;
    /**
     * account address to refund fee if necessary
     */
    signer: string;
    /**
     * optional list of relayers permitted to the receive packet fees
     */
    relayers: string[];
}
export interface MsgPayPacketFeeAminoMsg {
    type: "cosmos-sdk/MsgPayPacketFee";
    value: MsgPayPacketFeeAmino;
}
/**
 * MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc
 * @name MsgPayPacketFeeResponse
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeResponse
 */
export interface MsgPayPacketFeeResponse {
}
export interface MsgPayPacketFeeResponseProtoMsg {
    typeUrl: "/ibc.applications.fee.v1.MsgPayPacketFeeResponse";
    value: Uint8Array;
}
/**
 * MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc
 * @name MsgPayPacketFeeResponseAmino
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeResponse
 */
export interface MsgPayPacketFeeResponseAmino {
}
export interface MsgPayPacketFeeResponseAminoMsg {
    type: "cosmos-sdk/MsgPayPacketFeeResponse";
    value: MsgPayPacketFeeResponseAmino;
}
/**
 * MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc
 * This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send)
 * @name MsgPayPacketFeeAsync
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeAsync
 */
export interface MsgPayPacketFeeAsync {
    /**
     * unique packet identifier comprised of the channel ID, port ID and sequence
     */
    packetId: PacketId;
    /**
     * the packet fee associated with a particular IBC packet
     */
    packetFee: PacketFee;
}
export interface MsgPayPacketFeeAsyncProtoMsg {
    typeUrl: "/ibc.applications.fee.v1.MsgPayPacketFeeAsync";
    value: Uint8Array;
}
/**
 * MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc
 * This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send)
 * @name MsgPayPacketFeeAsyncAmino
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeAsync
 */
export interface MsgPayPacketFeeAsyncAmino {
    /**
     * unique packet identifier comprised of the channel ID, port ID and sequence
     */
    packet_id: PacketIdAmino;
    /**
     * the packet fee associated with a particular IBC packet
     */
    packet_fee: PacketFeeAmino;
}
export interface MsgPayPacketFeeAsyncAminoMsg {
    type: "cosmos-sdk/MsgPayPacketFeeAsync";
    value: MsgPayPacketFeeAsyncAmino;
}
/**
 * MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc
 * @name MsgPayPacketFeeAsyncResponse
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeAsyncResponse
 */
export interface MsgPayPacketFeeAsyncResponse {
}
export interface MsgPayPacketFeeAsyncResponseProtoMsg {
    typeUrl: "/ibc.applications.fee.v1.MsgPayPacketFeeAsyncResponse";
    value: Uint8Array;
}
/**
 * MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc
 * @name MsgPayPacketFeeAsyncResponseAmino
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeAsyncResponse
 */
export interface MsgPayPacketFeeAsyncResponseAmino {
}
export interface MsgPayPacketFeeAsyncResponseAminoMsg {
    type: "cosmos-sdk/MsgPayPacketFeeAsyncResponse";
    value: MsgPayPacketFeeAsyncResponseAmino;
}
/**
 * MsgRegisterPayee defines the request type for the RegisterPayee rpc
 * @name MsgRegisterPayee
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterPayee
 */
export declare const MsgRegisterPayee: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRegisterPayee;
    isAmino(o: any): o is MsgRegisterPayeeAmino;
    encode(message: MsgRegisterPayee, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRegisterPayee;
    fromPartial(object: DeepPartial<MsgRegisterPayee>): MsgRegisterPayee;
    fromAmino(object: MsgRegisterPayeeAmino): MsgRegisterPayee;
    toAmino(message: MsgRegisterPayee): MsgRegisterPayeeAmino;
    fromAminoMsg(object: MsgRegisterPayeeAminoMsg): MsgRegisterPayee;
    toAminoMsg(message: MsgRegisterPayee): MsgRegisterPayeeAminoMsg;
    fromProtoMsg(message: MsgRegisterPayeeProtoMsg): MsgRegisterPayee;
    toProto(message: MsgRegisterPayee): Uint8Array;
    toProtoMsg(message: MsgRegisterPayee): MsgRegisterPayeeProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgRegisterPayeeResponse defines the response type for the RegisterPayee rpc
 * @name MsgRegisterPayeeResponse
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterPayeeResponse
 */
export declare const MsgRegisterPayeeResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRegisterPayeeResponse;
    isAmino(o: any): o is MsgRegisterPayeeResponseAmino;
    encode(_: MsgRegisterPayeeResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRegisterPayeeResponse;
    fromPartial(_: DeepPartial<MsgRegisterPayeeResponse>): MsgRegisterPayeeResponse;
    fromAmino(_: MsgRegisterPayeeResponseAmino): MsgRegisterPayeeResponse;
    toAmino(_: MsgRegisterPayeeResponse): MsgRegisterPayeeResponseAmino;
    fromAminoMsg(object: MsgRegisterPayeeResponseAminoMsg): MsgRegisterPayeeResponse;
    toAminoMsg(message: MsgRegisterPayeeResponse): MsgRegisterPayeeResponseAminoMsg;
    fromProtoMsg(message: MsgRegisterPayeeResponseProtoMsg): MsgRegisterPayeeResponse;
    toProto(message: MsgRegisterPayeeResponse): Uint8Array;
    toProtoMsg(message: MsgRegisterPayeeResponse): MsgRegisterPayeeResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgRegisterCounterpartyPayee defines the request type for the RegisterCounterpartyPayee rpc
 * @name MsgRegisterCounterpartyPayee
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterCounterpartyPayee
 */
export declare const MsgRegisterCounterpartyPayee: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRegisterCounterpartyPayee;
    isAmino(o: any): o is MsgRegisterCounterpartyPayeeAmino;
    encode(message: MsgRegisterCounterpartyPayee, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRegisterCounterpartyPayee;
    fromPartial(object: DeepPartial<MsgRegisterCounterpartyPayee>): MsgRegisterCounterpartyPayee;
    fromAmino(object: MsgRegisterCounterpartyPayeeAmino): MsgRegisterCounterpartyPayee;
    toAmino(message: MsgRegisterCounterpartyPayee): MsgRegisterCounterpartyPayeeAmino;
    fromAminoMsg(object: MsgRegisterCounterpartyPayeeAminoMsg): MsgRegisterCounterpartyPayee;
    toAminoMsg(message: MsgRegisterCounterpartyPayee): MsgRegisterCounterpartyPayeeAminoMsg;
    fromProtoMsg(message: MsgRegisterCounterpartyPayeeProtoMsg): MsgRegisterCounterpartyPayee;
    toProto(message: MsgRegisterCounterpartyPayee): Uint8Array;
    toProtoMsg(message: MsgRegisterCounterpartyPayee): MsgRegisterCounterpartyPayeeProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgRegisterCounterpartyPayeeResponse defines the response type for the RegisterCounterpartyPayee rpc
 * @name MsgRegisterCounterpartyPayeeResponse
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgRegisterCounterpartyPayeeResponse
 */
export declare const MsgRegisterCounterpartyPayeeResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgRegisterCounterpartyPayeeResponse;
    isAmino(o: any): o is MsgRegisterCounterpartyPayeeResponseAmino;
    encode(_: MsgRegisterCounterpartyPayeeResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRegisterCounterpartyPayeeResponse;
    fromPartial(_: DeepPartial<MsgRegisterCounterpartyPayeeResponse>): MsgRegisterCounterpartyPayeeResponse;
    fromAmino(_: MsgRegisterCounterpartyPayeeResponseAmino): MsgRegisterCounterpartyPayeeResponse;
    toAmino(_: MsgRegisterCounterpartyPayeeResponse): MsgRegisterCounterpartyPayeeResponseAmino;
    fromAminoMsg(object: MsgRegisterCounterpartyPayeeResponseAminoMsg): MsgRegisterCounterpartyPayeeResponse;
    toAminoMsg(message: MsgRegisterCounterpartyPayeeResponse): MsgRegisterCounterpartyPayeeResponseAminoMsg;
    fromProtoMsg(message: MsgRegisterCounterpartyPayeeResponseProtoMsg): MsgRegisterCounterpartyPayeeResponse;
    toProto(message: MsgRegisterCounterpartyPayeeResponse): Uint8Array;
    toProtoMsg(message: MsgRegisterCounterpartyPayeeResponse): MsgRegisterCounterpartyPayeeResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgPayPacketFee defines the request type for the PayPacketFee rpc
 * This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be
 * paid for
 * @name MsgPayPacketFee
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFee
 */
export declare const MsgPayPacketFee: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgPayPacketFee;
    isAmino(o: any): o is MsgPayPacketFeeAmino;
    encode(message: MsgPayPacketFee, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgPayPacketFee;
    fromPartial(object: DeepPartial<MsgPayPacketFee>): MsgPayPacketFee;
    fromAmino(object: MsgPayPacketFeeAmino): MsgPayPacketFee;
    toAmino(message: MsgPayPacketFee): MsgPayPacketFeeAmino;
    fromAminoMsg(object: MsgPayPacketFeeAminoMsg): MsgPayPacketFee;
    toAminoMsg(message: MsgPayPacketFee): MsgPayPacketFeeAminoMsg;
    fromProtoMsg(message: MsgPayPacketFeeProtoMsg): MsgPayPacketFee;
    toProto(message: MsgPayPacketFee): Uint8Array;
    toProtoMsg(message: MsgPayPacketFee): MsgPayPacketFeeProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc
 * @name MsgPayPacketFeeResponse
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeResponse
 */
export declare const MsgPayPacketFeeResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgPayPacketFeeResponse;
    isAmino(o: any): o is MsgPayPacketFeeResponseAmino;
    encode(_: MsgPayPacketFeeResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgPayPacketFeeResponse;
    fromPartial(_: DeepPartial<MsgPayPacketFeeResponse>): MsgPayPacketFeeResponse;
    fromAmino(_: MsgPayPacketFeeResponseAmino): MsgPayPacketFeeResponse;
    toAmino(_: MsgPayPacketFeeResponse): MsgPayPacketFeeResponseAmino;
    fromAminoMsg(object: MsgPayPacketFeeResponseAminoMsg): MsgPayPacketFeeResponse;
    toAminoMsg(message: MsgPayPacketFeeResponse): MsgPayPacketFeeResponseAminoMsg;
    fromProtoMsg(message: MsgPayPacketFeeResponseProtoMsg): MsgPayPacketFeeResponse;
    toProto(message: MsgPayPacketFeeResponse): Uint8Array;
    toProtoMsg(message: MsgPayPacketFeeResponse): MsgPayPacketFeeResponseProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc
 * This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send)
 * @name MsgPayPacketFeeAsync
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeAsync
 */
export declare const MsgPayPacketFeeAsync: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgPayPacketFeeAsync;
    isAmino(o: any): o is MsgPayPacketFeeAsyncAmino;
    encode(message: MsgPayPacketFeeAsync, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgPayPacketFeeAsync;
    fromPartial(object: DeepPartial<MsgPayPacketFeeAsync>): MsgPayPacketFeeAsync;
    fromAmino(object: MsgPayPacketFeeAsyncAmino): MsgPayPacketFeeAsync;
    toAmino(message: MsgPayPacketFeeAsync): MsgPayPacketFeeAsyncAmino;
    fromAminoMsg(object: MsgPayPacketFeeAsyncAminoMsg): MsgPayPacketFeeAsync;
    toAminoMsg(message: MsgPayPacketFeeAsync): MsgPayPacketFeeAsyncAminoMsg;
    fromProtoMsg(message: MsgPayPacketFeeAsyncProtoMsg): MsgPayPacketFeeAsync;
    toProto(message: MsgPayPacketFeeAsync): Uint8Array;
    toProtoMsg(message: MsgPayPacketFeeAsync): MsgPayPacketFeeAsyncProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc
 * @name MsgPayPacketFeeAsyncResponse
 * @package ibc.applications.fee.v1
 * @see proto type: ibc.applications.fee.v1.MsgPayPacketFeeAsyncResponse
 */
export declare const MsgPayPacketFeeAsyncResponse: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MsgPayPacketFeeAsyncResponse;
    isAmino(o: any): o is MsgPayPacketFeeAsyncResponseAmino;
    encode(_: MsgPayPacketFeeAsyncResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgPayPacketFeeAsyncResponse;
    fromPartial(_: DeepPartial<MsgPayPacketFeeAsyncResponse>): MsgPayPacketFeeAsyncResponse;
    fromAmino(_: MsgPayPacketFeeAsyncResponseAmino): MsgPayPacketFeeAsyncResponse;
    toAmino(_: MsgPayPacketFeeAsyncResponse): MsgPayPacketFeeAsyncResponseAmino;
    fromAminoMsg(object: MsgPayPacketFeeAsyncResponseAminoMsg): MsgPayPacketFeeAsyncResponse;
    toAminoMsg(message: MsgPayPacketFeeAsyncResponse): MsgPayPacketFeeAsyncResponseAminoMsg;
    fromProtoMsg(message: MsgPayPacketFeeAsyncResponseProtoMsg): MsgPayPacketFeeAsyncResponse;
    toProto(message: MsgPayPacketFeeAsyncResponse): Uint8Array;
    toProtoMsg(message: MsgPayPacketFeeAsyncResponse): MsgPayPacketFeeAsyncResponseProtoMsg;
    registerTypeUrl(): void;
};
