// package: wechaty.puppet
// file: puppet/event.proto

import * as jspb from "google-protobuf";

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

export namespace EventRequest {
  export type AsObject = {
  }
}

export class EventResponse extends jspb.Message {
  getType(): EventTypeMap[keyof EventTypeMap];
  setType(value: EventTypeMap[keyof EventTypeMap]): void;

  getPayload(): string;
  setPayload(value: string): void;

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

export namespace EventResponse {
  export type AsObject = {
    type: EventTypeMap[keyof EventTypeMap],
    payload: string,
  }
}

export interface EventTypeMap {
  EVENT_TYPE_UNSPECIFIED: 0;
  EVENT_TYPE_HEARTBEAT: 1;
  EVENT_TYPE_MESSAGE: 2;
  EVENT_TYPE_DONG: 3;
  EVENT_TYPE_ERROR: 16;
  EVENT_TYPE_FRIENDSHIP: 17;
  EVENT_TYPE_ROOM_INVITE: 18;
  EVENT_TYPE_ROOM_JOIN: 19;
  EVENT_TYPE_ROOM_LEAVE: 20;
  EVENT_TYPE_ROOM_TOPIC: 21;
  EVENT_TYPE_SCAN: 22;
  EVENT_TYPE_READY: 23;
  EVENT_TYPE_RESET: 24;
  EVENT_TYPE_LOGIN: 25;
  EVENT_TYPE_LOGOUT: 26;
}

export const EventType: EventTypeMap;

