import * as jspb from 'google-protobuf'

import * as annotations_pb from './annotations_pb'; // proto import: "annotations.proto"


export class PhotoGalleryItem extends jspb.Message {
  getItemId(): number;
  setItemId(value: number): PhotoGalleryItem;

  getFullUrl(): string;
  setFullUrl(value: string): PhotoGalleryItem;

  getThumbnailUrl(): string;
  setThumbnailUrl(value: string): PhotoGalleryItem;

  getCaption(): string;
  setCaption(value: string): PhotoGalleryItem;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): PhotoGalleryItem.AsObject;
  static toObject(includeInstance: boolean, msg: PhotoGalleryItem): PhotoGalleryItem.AsObject;
  static serializeBinaryToWriter(message: PhotoGalleryItem, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): PhotoGalleryItem;
  static deserializeBinaryFromReader(message: PhotoGalleryItem, reader: jspb.BinaryReader): PhotoGalleryItem;
}

export namespace PhotoGalleryItem {
  export type AsObject = {
    itemId: number,
    fullUrl: string,
    thumbnailUrl: string,
    caption: string,
  }
}

export class PhotoGallery extends jspb.Message {
  getGalleryId(): number;
  setGalleryId(value: number): PhotoGallery;

  getPhotosList(): Array<PhotoGalleryItem>;
  setPhotosList(value: Array<PhotoGalleryItem>): PhotoGallery;
  clearPhotosList(): PhotoGallery;
  addPhotos(value?: PhotoGalleryItem, index?: number): PhotoGalleryItem;

  getCanEdit(): boolean;
  setCanEdit(value: boolean): PhotoGallery;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): PhotoGallery.AsObject;
  static toObject(includeInstance: boolean, msg: PhotoGallery): PhotoGallery.AsObject;
  static serializeBinaryToWriter(message: PhotoGallery, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): PhotoGallery;
  static deserializeBinaryFromReader(message: PhotoGallery, reader: jspb.BinaryReader): PhotoGallery;
}

export namespace PhotoGallery {
  export type AsObject = {
    galleryId: number,
    photosList: Array<PhotoGalleryItem.AsObject>,
    canEdit: boolean,
  }
}

export class GetGalleryReq extends jspb.Message {
  getGalleryId(): number;
  setGalleryId(value: number): GetGalleryReq;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): GetGalleryReq.AsObject;
  static toObject(includeInstance: boolean, msg: GetGalleryReq): GetGalleryReq.AsObject;
  static serializeBinaryToWriter(message: GetGalleryReq, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): GetGalleryReq;
  static deserializeBinaryFromReader(message: GetGalleryReq, reader: jspb.BinaryReader): GetGalleryReq;
}

export namespace GetGalleryReq {
  export type AsObject = {
    galleryId: number,
  }
}

export class AddPhotoToGalleryReq extends jspb.Message {
  getGalleryId(): number;
  setGalleryId(value: number): AddPhotoToGalleryReq;

  getUploadKey(): string;
  setUploadKey(value: string): AddPhotoToGalleryReq;

  getCaption(): string;
  setCaption(value: string): AddPhotoToGalleryReq;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): AddPhotoToGalleryReq.AsObject;
  static toObject(includeInstance: boolean, msg: AddPhotoToGalleryReq): AddPhotoToGalleryReq.AsObject;
  static serializeBinaryToWriter(message: AddPhotoToGalleryReq, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): AddPhotoToGalleryReq;
  static deserializeBinaryFromReader(message: AddPhotoToGalleryReq, reader: jspb.BinaryReader): AddPhotoToGalleryReq;
}

export namespace AddPhotoToGalleryReq {
  export type AsObject = {
    galleryId: number,
    uploadKey: string,
    caption: string,
  }
}

export class RemovePhotoFromGalleryReq extends jspb.Message {
  getGalleryId(): number;
  setGalleryId(value: number): RemovePhotoFromGalleryReq;

  getItemId(): number;
  setItemId(value: number): RemovePhotoFromGalleryReq;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): RemovePhotoFromGalleryReq.AsObject;
  static toObject(includeInstance: boolean, msg: RemovePhotoFromGalleryReq): RemovePhotoFromGalleryReq.AsObject;
  static serializeBinaryToWriter(message: RemovePhotoFromGalleryReq, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): RemovePhotoFromGalleryReq;
  static deserializeBinaryFromReader(message: RemovePhotoFromGalleryReq, reader: jspb.BinaryReader): RemovePhotoFromGalleryReq;
}

export namespace RemovePhotoFromGalleryReq {
  export type AsObject = {
    galleryId: number,
    itemId: number,
  }
}

export class MovePhotoReq extends jspb.Message {
  getGalleryId(): number;
  setGalleryId(value: number): MovePhotoReq;

  getItemId(): number;
  setItemId(value: number): MovePhotoReq;

  getAfterItemId(): number;
  setAfterItemId(value: number): MovePhotoReq;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): MovePhotoReq.AsObject;
  static toObject(includeInstance: boolean, msg: MovePhotoReq): MovePhotoReq.AsObject;
  static serializeBinaryToWriter(message: MovePhotoReq, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): MovePhotoReq;
  static deserializeBinaryFromReader(message: MovePhotoReq, reader: jspb.BinaryReader): MovePhotoReq;
}

export namespace MovePhotoReq {
  export type AsObject = {
    galleryId: number,
    itemId: number,
    afterItemId: number,
  }
}

export class UpdatePhotoCaptionReq extends jspb.Message {
  getGalleryId(): number;
  setGalleryId(value: number): UpdatePhotoCaptionReq;

  getItemId(): number;
  setItemId(value: number): UpdatePhotoCaptionReq;

  getCaption(): string;
  setCaption(value: string): UpdatePhotoCaptionReq;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): UpdatePhotoCaptionReq.AsObject;
  static toObject(includeInstance: boolean, msg: UpdatePhotoCaptionReq): UpdatePhotoCaptionReq.AsObject;
  static serializeBinaryToWriter(message: UpdatePhotoCaptionReq, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): UpdatePhotoCaptionReq;
  static deserializeBinaryFromReader(message: UpdatePhotoCaptionReq, reader: jspb.BinaryReader): UpdatePhotoCaptionReq;
}

export namespace UpdatePhotoCaptionReq {
  export type AsObject = {
    galleryId: number,
    itemId: number,
    caption: string,
  }
}

export class GetGalleryEditInfoReq extends jspb.Message {
  getGalleryId(): number;
  setGalleryId(value: number): GetGalleryEditInfoReq;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): GetGalleryEditInfoReq.AsObject;
  static toObject(includeInstance: boolean, msg: GetGalleryEditInfoReq): GetGalleryEditInfoReq.AsObject;
  static serializeBinaryToWriter(message: GetGalleryEditInfoReq, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): GetGalleryEditInfoReq;
  static deserializeBinaryFromReader(message: GetGalleryEditInfoReq, reader: jspb.BinaryReader): GetGalleryEditInfoReq;
}

export namespace GetGalleryEditInfoReq {
  export type AsObject = {
    galleryId: number,
  }
}

export class GetGalleryEditInfoRes extends jspb.Message {
  getGalleryId(): number;
  setGalleryId(value: number): GetGalleryEditInfoRes;

  getMaxPhotos(): number;
  setMaxPhotos(value: number): GetGalleryEditInfoRes;

  getCurrentPhotoCount(): number;
  setCurrentPhotoCount(value: number): GetGalleryEditInfoRes;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): GetGalleryEditInfoRes.AsObject;
  static toObject(includeInstance: boolean, msg: GetGalleryEditInfoRes): GetGalleryEditInfoRes.AsObject;
  static serializeBinaryToWriter(message: GetGalleryEditInfoRes, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): GetGalleryEditInfoRes;
  static deserializeBinaryFromReader(message: GetGalleryEditInfoRes, reader: jspb.BinaryReader): GetGalleryEditInfoRes;
}

export namespace GetGalleryEditInfoRes {
  export type AsObject = {
    galleryId: number,
    maxPhotos: number,
    currentPhotoCount: number,
  }
}

