// package: routerprotocol.routerchain.crosschain
// file: routerprotocol/routerchain/crosschain/ibc_send_payload.proto

import * as jspb from "google-protobuf";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";

export class AckRequestPayload extends jspb.Message {
  getRequestIdentifier(): number;
  setRequestIdentifier(value: number): void;

  getAckRequestIdentifier(): number;
  setAckRequestIdentifier(value: number): void;

  getSrcChainId(): string;
  setSrcChainId(value: string): void;

  getDestChainId(): string;
  setDestChainId(value: string): void;

  getRequestSender(): string;
  setRequestSender(value: string): void;

  getExecData(): Uint8Array | string;
  getExecData_asU8(): Uint8Array;
  getExecData_asB64(): string;
  setExecData(value: Uint8Array | string): void;

  getExecStatus(): boolean;
  setExecStatus(value: boolean): void;

  getBlockHeight(): number;
  setBlockHeight(value: number): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): AckRequestPayload.AsObject;
  static toObject(includeInstance: boolean, msg: AckRequestPayload): AckRequestPayload.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: AckRequestPayload, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): AckRequestPayload;
  static deserializeBinaryFromReader(message: AckRequestPayload, reader: jspb.BinaryReader): AckRequestPayload;
}

export namespace AckRequestPayload {
  export type AsObject = {
    requestIdentifier: number,
    ackRequestIdentifier: number,
    srcChainId: string,
    destChainId: string,
    requestSender: string,
    execData: Uint8Array | string,
    execStatus: boolean,
    blockHeight: number,
  }
}

export class RequestPayload extends jspb.Message {
  getRouteAmount(): string;
  setRouteAmount(value: string): void;

  getRouteRecipient(): string;
  setRouteRecipient(value: string): void;

  getRequestIdentifier(): number;
  setRequestIdentifier(value: number): void;

  getRequestTimestamp(): number;
  setRequestTimestamp(value: number): void;

  getAsmAddress(): string;
  setAsmAddress(value: string): void;

  getSrcChainId(): string;
  setSrcChainId(value: string): void;

  getDestChainId(): string;
  setDestChainId(value: string): void;

  getRequestSender(): string;
  setRequestSender(value: string): void;

  getHandlerAddress(): string;
  setHandlerAddress(value: string): void;

  getRequestPacket(): Uint8Array | string;
  getRequestPacket_asU8(): Uint8Array;
  getRequestPacket_asB64(): string;
  setRequestPacket(value: Uint8Array | string): void;

  getIsReadCall(): boolean;
  setIsReadCall(value: boolean): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): RequestPayload.AsObject;
  static toObject(includeInstance: boolean, msg: RequestPayload): RequestPayload.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: RequestPayload, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): RequestPayload;
  static deserializeBinaryFromReader(message: RequestPayload, reader: jspb.BinaryReader): RequestPayload;
}

export namespace RequestPayload {
  export type AsObject = {
    routeAmount: string,
    routeRecipient: string,
    requestIdentifier: number,
    requestTimestamp: number,
    asmAddress: string,
    srcChainId: string,
    destChainId: string,
    requestSender: string,
    handlerAddress: string,
    requestPacket: Uint8Array | string,
    isReadCall: boolean,
  }
}

export class IBCRequestPayload extends jspb.Message {
  hasRequestPayload(): boolean;
  clearRequestPayload(): void;
  getRequestPayload(): RequestPayload | undefined;
  setRequestPayload(value?: RequestPayload): void;

  hasAckRequestPayload(): boolean;
  clearAckRequestPayload(): void;
  getAckRequestPayload(): AckRequestPayload | undefined;
  setAckRequestPayload(value?: AckRequestPayload): void;

  getSendCase(): IBCRequestPayload.SendCase;
  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): IBCRequestPayload.AsObject;
  static toObject(includeInstance: boolean, msg: IBCRequestPayload): IBCRequestPayload.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: IBCRequestPayload, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): IBCRequestPayload;
  static deserializeBinaryFromReader(message: IBCRequestPayload, reader: jspb.BinaryReader): IBCRequestPayload;
}

export namespace IBCRequestPayload {
  export type AsObject = {
    requestPayload?: RequestPayload.AsObject,
    ackRequestPayload?: AckRequestPayload.AsObject,
  }

  export enum SendCase {
    SEND_NOT_SET = 0,
    REQUEST_PAYLOAD = 1,
    ACK_REQUEST_PAYLOAD = 2,
  }
}

