import * as jspb from 'google-protobuf'

import * as google_protobuf_descriptor_pb from 'google-protobuf/google/protobuf/descriptor_pb'; // proto import: "google/protobuf/descriptor.proto"


export class RateLimit extends jspb.Message {
  getPerIp(): number;
  setPerIp(value: number): RateLimit;
  hasPerIp(): boolean;
  clearPerIp(): RateLimit;

  getPerUser(): number;
  setPerUser(value: number): RateLimit;
  hasPerUser(): boolean;
  clearPerUser(): RateLimit;

  getGlobal(): number;
  setGlobal(value: number): RateLimit;
  hasGlobal(): boolean;
  clearGlobal(): RateLimit;

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

export namespace RateLimit {
  export type AsObject = {
    perIp?: number,
    perUser?: number,
    global?: number,
  }

  export enum PerIpCase { 
    _PER_IP_NOT_SET = 0,
    PER_IP = 1,
  }

  export enum PerUserCase { 
    _PER_USER_NOT_SET = 0,
    PER_USER = 2,
  }

  export enum GlobalCase { 
    _GLOBAL_NOT_SET = 0,
    GLOBAL = 3,
  }
}

export enum AuthLevel { 
  AUTH_LEVEL_UNKNOWN = 0,
  AUTH_LEVEL_OPEN = 1,
  AUTH_LEVEL_JAILED = 2,
  AUTH_LEVEL_SECURE = 3,
  AUTH_LEVEL_EDITOR = 5,
  AUTH_LEVEL_ADMIN = 4,
}
