// package: huddly
// file: api/service.proto

import * as jspb from "google-protobuf";
import * as google_protobuf_empty_pb from "google-protobuf/google/protobuf/empty_pb";

export class UserPtz extends jspb.Message {
  getEnabled(): boolean;
  setEnabled(value: boolean): void;

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

export namespace UserPtz {
  export type AsObject = {
    enabled: boolean,
  }
}

export class CameraInfoWrite extends jspb.Message {
  getIp(): string;
  setIp(value: string): void;

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

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

export namespace CameraInfoWrite {
  export type AsObject = {
    ip: string,
    name: string,
  }
}

export class CameraInfo extends jspb.Message {
  getIp(): string;
  setIp(value: string): void;

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

  getVersion(): string;
  setVersion(value: string): void;

  getVersionState(): VersionStateMap[keyof VersionStateMap];
  setVersionState(value: VersionStateMap[keyof VersionStateMap]): void;

  clearPairingStatesList(): void;
  getPairingStatesList(): Array<CameraPairingStateMap[keyof CameraPairingStateMap]>;
  setPairingStatesList(value: Array<CameraPairingStateMap[keyof CameraPairingStateMap]>): void;
  addPairingStates(value: CameraPairingStateMap[keyof CameraPairingStateMap], index?: number): CameraPairingStateMap[keyof CameraPairingStateMap];

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

export namespace CameraInfo {
  export type AsObject = {
    ip: string,
    name: string,
    version: string,
    versionState: VersionStateMap[keyof VersionStateMap],
    pairingStatesList: Array<CameraPairingStateMap[keyof CameraPairingStateMap]>,
  }
}

export class AvailableCameras extends jspb.Message {
  clearCameraListList(): void;
  getCameraListList(): Array<CameraInfo>;
  setCameraListList(value: Array<CameraInfo>): void;
  addCameraList(value?: CameraInfo, index?: number): CameraInfo;

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

export namespace AvailableCameras {
  export type AsObject = {
    cameraListList: Array<CameraInfo.AsObject>,
  }
}

export class FwUpdateSchedule extends jspb.Message {
  getDaysOfWeek(): string;
  setDaysOfWeek(value: string): void;

  getHourOfDay(): number;
  setHourOfDay(value: number): void;

  getStartDelayMaxSeconds(): number;
  setStartDelayMaxSeconds(value: number): void;

  clearValidPairingStatesList(): void;
  getValidPairingStatesList(): Array<CameraPairingStateMap[keyof CameraPairingStateMap]>;
  setValidPairingStatesList(value: Array<CameraPairingStateMap[keyof CameraPairingStateMap]>): void;
  addValidPairingStates(value: CameraPairingStateMap[keyof CameraPairingStateMap], index?: number): CameraPairingStateMap[keyof CameraPairingStateMap];

  getDisabled(): boolean;
  setDisabled(value: boolean): void;

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

export namespace FwUpdateSchedule {
  export type AsObject = {
    daysOfWeek: string,
    hourOfDay: number,
    startDelayMaxSeconds: number,
    validPairingStatesList: Array<CameraPairingStateMap[keyof CameraPairingStateMap]>,
    disabled: boolean,
  }
}

export class FwUpdateScheduleStatus extends jspb.Message {
  getMessage(): string;
  setMessage(value: string): void;

  getCode(): FwUpdateScheduleStatusCodesMap[keyof FwUpdateScheduleStatusCodesMap];
  setCode(value: FwUpdateScheduleStatusCodesMap[keyof FwUpdateScheduleStatusCodesMap]): void;

  clearAffectedCamerasList(): void;
  getAffectedCamerasList(): Array<CameraInfo>;
  setAffectedCamerasList(value: Array<CameraInfo>): void;
  addAffectedCameras(value?: CameraInfo, index?: number): CameraInfo;

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

export namespace FwUpdateScheduleStatus {
  export type AsObject = {
    message: string,
    code: FwUpdateScheduleStatusCodesMap[keyof FwUpdateScheduleStatusCodesMap],
    affectedCamerasList: Array<CameraInfo.AsObject>,
  }
}

export interface VersionStateMap {
  UNKNOWNVERSIONSTATE: 0;
  VERIFIED: 1;
  UNVERIFIED: 2;
  RECOVERY: 3;
}

export const VersionState: VersionStateMap;

export interface CameraPairingStateMap {
  UNKNOWNPAIRINGSTATE: 0;
  DEFAULT: 1;
  ACTIVE: 2;
  PAIRED: 3;
}

export const CameraPairingState: CameraPairingStateMap;

export interface FwUpdateScheduleStatusCodesMap {
  UNKNOWN: 0;
  SUCCESS: 1;
  FAILED: 2;
}

export const FwUpdateScheduleStatusCodes: FwUpdateScheduleStatusCodesMap;

