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

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

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

export namespace ContactListRequest {
  export type AsObject = {
  }
}

export class ContactListResponse extends jspb.Message {
  clearIdsList(): void;
  getIdsList(): Array<string>;
  setIdsList(value: Array<string>): void;
  addIds(value: string, index?: number): string;

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

export namespace ContactListResponse {
  export type AsObject = {
    idsList: Array<string>,
  }
}

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

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

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

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

  getGender(): ContactGenderMap[keyof ContactGenderMap];
  setGender(value: ContactGenderMap[keyof ContactGenderMap]): void;

  getType(): ContactTypeMap[keyof ContactTypeMap];
  setType(value: ContactTypeMap[keyof ContactTypeMap]): void;

  getName(): string;
  setName(value: string): void;

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

  getAddress(): string;
  setAddress(value: string): void;

  getAlias(): string;
  setAlias(value: string): void;

  getCity(): string;
  setCity(value: string): void;

  getFriend(): boolean;
  setFriend(value: boolean): void;

  getProvince(): string;
  setProvince(value: string): void;

  getSignature(): string;
  setSignature(value: string): void;

  getStar(): boolean;
  setStar(value: boolean): void;

  getWeixin(): string;
  setWeixin(value: string): void;

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

export namespace ContactPayloadResponse {
  export type AsObject = {
    id: string,
    gender: ContactGenderMap[keyof ContactGenderMap],
    type: ContactTypeMap[keyof ContactTypeMap],
    name: string,
    avatar: string,
    address: string,
    alias: string,
    city: string,
    friend: boolean,
    province: string,
    signature: string,
    star: boolean,
    weixin: string,
  }
}

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

export namespace ContactSelfQRCodeRequest {
  export type AsObject = {
  }
}

export class ContactSelfQRCodeResponse extends jspb.Message {
  getQrcode(): string;
  setQrcode(value: string): void;

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

export namespace ContactSelfQRCodeResponse {
  export type AsObject = {
    qrcode: string,
  }
}

export class ContactSelfNameRequest extends jspb.Message {
  getName(): string;
  setName(value: string): void;

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

export namespace ContactSelfNameRequest {
  export type AsObject = {
    name: string,
  }
}

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

export namespace ContactSelfNameResponse {
  export type AsObject = {
  }
}

export class ContactSelfSignatureRequest extends jspb.Message {
  getSignature(): string;
  setSignature(value: string): void;

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

export namespace ContactSelfSignatureRequest {
  export type AsObject = {
    signature: string,
  }
}

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

export namespace ContactSelfSignatureResponse {
  export type AsObject = {
  }
}

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

  hasAlias(): boolean;
  clearAlias(): void;
  getAlias(): google_protobuf_wrappers_pb.StringValue | undefined;
  setAlias(value?: google_protobuf_wrappers_pb.StringValue): void;

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

export namespace ContactAliasRequest {
  export type AsObject = {
    id: string,
    alias?: google_protobuf_wrappers_pb.StringValue.AsObject,
  }
}

export class ContactAliasResponse extends jspb.Message {
  hasAlias(): boolean;
  clearAlias(): void;
  getAlias(): google_protobuf_wrappers_pb.StringValue | undefined;
  setAlias(value?: google_protobuf_wrappers_pb.StringValue): void;

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

export namespace ContactAliasResponse {
  export type AsObject = {
    alias?: google_protobuf_wrappers_pb.StringValue.AsObject,
  }
}

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

  hasFilebox(): boolean;
  clearFilebox(): void;
  getFilebox(): google_protobuf_wrappers_pb.StringValue | undefined;
  setFilebox(value?: google_protobuf_wrappers_pb.StringValue): void;

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

export namespace ContactAvatarRequest {
  export type AsObject = {
    id: string,
    filebox?: google_protobuf_wrappers_pb.StringValue.AsObject,
  }
}

export class ContactAvatarResponse extends jspb.Message {
  hasFilebox(): boolean;
  clearFilebox(): void;
  getFilebox(): google_protobuf_wrappers_pb.StringValue | undefined;
  setFilebox(value?: google_protobuf_wrappers_pb.StringValue): void;

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

export namespace ContactAvatarResponse {
  export type AsObject = {
    filebox?: google_protobuf_wrappers_pb.StringValue.AsObject,
  }
}

export interface ContactGenderMap {
  CONTACT_GENDER_UNSPECIFIED: 0;
  CONTACT_GENDER_MALE: 1;
  CONTACT_GENDER_FEMALE: 2;
}

export const ContactGender: ContactGenderMap;

export interface ContactTypeMap {
  CONTACT_TYPE_UNSPECIFIED: 0;
  CONTACT_TYPE_PERSONAL: 1;
  CONTACT_TYPE_OFFICIAL: 2;
}

export const ContactType: ContactTypeMap;

