// package: bet.beteran.c2se.backend.member_level
// file: c2se/backend/member_level.proto

import * as jspb from 'google-protobuf';
import * as protobuf_rpc_error_pb from '../../protobuf/rpc/error_pb';
import * as protobuf_pagination_pagination_pb from '../../protobuf/pagination/pagination_pb';
import * as protobuf_pagination_search_pb from '../../protobuf/pagination/search_pb';
import * as protobuf_pagination_sort_pb from '../../protobuf/pagination/sort_pb';
import * as models_member_member_level_pb from '../../models/member/member_level_pb';

export const SUBJECT_CREATE_MEMBER_LEVEL: string;
export const SUBJECT_LIST_MEMBER_LEVELS: string;
export const SUBJECT_GET_MEMBER_LEVEL: string;
export const SUBJECT_UPDATE_MEMBER_LEVEL: string;
export const SUBJECT_DELETE_MEMBER_LEVEL: string;

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

  getSortOrder(): number;
  setSortOrder(value: number): void;

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

export namespace CreateMemberLevelRequest {
  export type AsObject = {
    name: string;
    sortOrder: number;
  };
}

export class CreateMemberLevelResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): CreateMemberLevelResponse.Result | undefined;
  setResult(value?: CreateMemberLevelResponse.Result): void;

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

export namespace CreateMemberLevelResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: CreateMemberLevelResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    hasMemberLevel(): boolean;
    clearMemberLevel(): void;
    getMemberLevel(): models_member_member_level_pb.MemberLevel | undefined;
    setMemberLevel(value?: models_member_member_level_pb.MemberLevel): void;

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

  export namespace Result {
    export type AsObject = {
      memberLevel?: models_member_member_level_pb.MemberLevel.AsObject;
    };
  }
}

export class ListMemberLevelesRequest extends jspb.Message {
  hasPagination(): boolean;
  clearPagination(): void;
  getPagination(): protobuf_pagination_pagination_pb.Pagination | undefined;
  setPagination(value?: protobuf_pagination_pagination_pb.Pagination): void;

  clearSearchesList(): void;
  getSearchesList(): Array<protobuf_pagination_search_pb.Search>;
  setSearchesList(value: Array<protobuf_pagination_search_pb.Search>): void;
  addSearches(
    value?: protobuf_pagination_search_pb.Search,
    index?: number
  ): protobuf_pagination_search_pb.Search;

  clearSortsList(): void;
  getSortsList(): Array<protobuf_pagination_sort_pb.Sort>;
  setSortsList(value: Array<protobuf_pagination_sort_pb.Sort>): void;
  addSorts(
    value?: protobuf_pagination_sort_pb.Sort,
    index?: number
  ): protobuf_pagination_sort_pb.Sort;

  hasNameLike(): boolean;
  clearNameLike(): void;
  getNameLike(): string;
  setNameLike(value: string): void;

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

export namespace ListMemberLevelesRequest {
  export type AsObject = {
    pagination?: protobuf_pagination_pagination_pb.Pagination.AsObject;
    searchesList: Array<protobuf_pagination_search_pb.Search.AsObject>;
    sortsList: Array<protobuf_pagination_sort_pb.Sort.AsObject>;
    nameLike: string;
  };
}

export class ListMemberLevelsResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): ListMemberLevelsResponse.Result | undefined;
  setResult(value?: ListMemberLevelsResponse.Result): void;

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

export namespace ListMemberLevelsResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: ListMemberLevelsResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    clearMemberLevelsList(): void;
    getMemberLevelsList(): Array<models_member_member_level_pb.MemberLevel>;
    setMemberLevelsList(
      value: Array<models_member_member_level_pb.MemberLevel>
    ): void;
    addMemberLevels(
      value?: models_member_member_level_pb.MemberLevel,
      index?: number
    ): models_member_member_level_pb.MemberLevel;

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

  export namespace Result {
    export type AsObject = {
      memberLevelsList: Array<models_member_member_level_pb.MemberLevel.AsObject>;
    };
  }
}

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

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

export namespace GetMemberLevelRequest {
  export type AsObject = {
    id: string;
  };
}

export class GetMemberLevelResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): GetMemberLevelResponse.Result | undefined;
  setResult(value?: GetMemberLevelResponse.Result): void;

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

export namespace GetMemberLevelResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: GetMemberLevelResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    hasMemberLevel(): boolean;
    clearMemberLevel(): void;
    getMemberLevel(): models_member_member_level_pb.MemberLevel | undefined;
    setMemberLevel(value?: models_member_member_level_pb.MemberLevel): void;

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

  export namespace Result {
    export type AsObject = {
      memberLevel?: models_member_member_level_pb.MemberLevel.AsObject;
    };
  }
}

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

  hasParentId(): boolean;
  clearParentId(): void;
  getParentId(): string;
  setParentId(value: string): void;

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

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

export namespace UpdateMemberLevelRequest {
  export type AsObject = {
    id: string;
    parentId: string;
    name: string;
  };
}

export class UpdateMemberLevelResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): UpdateMemberLevelResponse.Result | undefined;
  setResult(value?: UpdateMemberLevelResponse.Result): void;

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

export namespace UpdateMemberLevelResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: UpdateMemberLevelResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    hasMemberLevel(): boolean;
    clearMemberLevel(): void;
    getMemberLevel(): models_member_member_level_pb.MemberLevel | undefined;
    setMemberLevel(value?: models_member_member_level_pb.MemberLevel): void;

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

  export namespace Result {
    export type AsObject = {
      memberLevel?: models_member_member_level_pb.MemberLevel.AsObject;
    };
  }
}

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

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

export namespace DeleteMemberLevelRequest {
  export type AsObject = {
    id: string;
  };
}

export class DeleteMemberLevelResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): DeleteMemberLevelResponse.Result | undefined;
  setResult(value?: DeleteMemberLevelResponse.Result): void;

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

export namespace DeleteMemberLevelResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: DeleteMemberLevelResponse.Result.AsObject;
  };

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

  export namespace Result {
    export type AsObject = {};
  }
}
