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

import * as jspb from "google-protobuf";
import * as google_protobuf_wrappers_pb from "google-protobuf/google/protobuf/wrappers_pb";

export class RoomInvitationPayloadRequest extends jspb.Message {
  getId(): string;
  setId(value: string): void;

  hasPayload(): boolean;
  clearPayload(): void;
  getPayload(): google_protobuf_wrappers_pb.StringValue | undefined;
  setPayload(value?: google_protobuf_wrappers_pb.StringValue): void;

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

export namespace RoomInvitationPayloadRequest {
  export type AsObject = {
    id: string,
    payload?: google_protobuf_wrappers_pb.StringValue.AsObject,
  }
}

export class RoomInvitationPayloadResponse extends jspb.Message {
  getId(): string;
  setId(value: string): void;

  getInviterId(): string;
  setInviterId(value: string): void;

  getTopic(): string;
  setTopic(value: string): void;

  getMemberCount(): number;
  setMemberCount(value: number): void;

  clearMemberIdsList(): void;
  getMemberIdsList(): Array<string>;
  setMemberIdsList(value: Array<string>): void;
  addMemberIds(value: string, index?: number): string;

  getTimestamp(): number;
  setTimestamp(value: number): void;

  getAvatar(): string;
  setAvatar(value: string): void;

  getInvitation(): string;
  setInvitation(value: string): void;

  getReceiverId(): string;
  setReceiverId(value: string): void;

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

export namespace RoomInvitationPayloadResponse {
  export type AsObject = {
    id: string,
    inviterId: string,
    topic: string,
    memberCount: number,
    memberIdsList: Array<string>,
    timestamp: number,
    avatar: string,
    invitation: string,
    receiverId: string,
  }
}

export class RoomInvitationAcceptRequest extends jspb.Message {
  getId(): string;
  setId(value: string): void;

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

export namespace RoomInvitationAcceptRequest {
  export type AsObject = {
    id: string,
  }
}

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

export namespace RoomInvitationAcceptResponse {
  export type AsObject = {
  }
}

