// package: bet.beteran.c2se.api.betting
// file: c2se/api/betting.proto

import * as jspb from 'google-protobuf';
import * as protobuf_rpc_pb from '../../protobuf/rpc_pb';
import * as protobuf_pagination_pb from '../../protobuf/pagination_pb';
import * as models_core_network_pb from '../../models/core/network_pb';
import * as models_api_betting_pb from '../../models/api/betting_pb';

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

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

  hasSearch(): boolean;
  clearSearch(): void;
  getSearch(): ListBettingHistoryRequest.Search | undefined;
  setSearch(value?: ListBettingHistoryRequest.Search): void;

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

export namespace ListBettingHistoryRequest {
  export type AsObject = {
    pagination?: protobuf_pagination_pb.Pagination.AsObject;
    sortsList: Array<protobuf_pagination_pb.Sort.AsObject>;
    search?: ListBettingHistoryRequest.Search.AsObject;
  };

  export class Search extends jspb.Message {
    hasMemberId(): boolean;
    clearMemberId(): void;
    getMemberId(): string;
    setMemberId(value: string): void;

    hasVendorId(): boolean;
    clearVendorId(): void;
    getVendorId(): number;
    setVendorId(value: number): void;

    clearVendorIdsList(): void;
    getVendorIdsList(): Array<number>;
    setVendorIdsList(value: Array<number>): void;
    addVendorIds(value: number, index?: number): number;

    hasVendorName(): boolean;
    clearVendorName(): void;
    getVendorName(): string;
    setVendorName(value: string): void;

    hasVendorNameLike(): boolean;
    clearVendorNameLike(): void;
    getVendorNameLike(): string;
    setVendorNameLike(value: string): void;

    hasGameId(): boolean;
    clearGameId(): void;
    getGameId(): number;
    setGameId(value: number): void;

    clearGameIdsList(): void;
    getGameIdsList(): Array<number>;
    setGameIdsList(value: Array<number>): void;
    addGameIds(value: number, index?: number): number;

    hasGameName(): boolean;
    clearGameName(): void;
    getGameName(): string;
    setGameName(value: string): void;

    hasGameNameLike(): boolean;
    clearGameNameLike(): void;
    getGameNameLike(): string;
    setGameNameLike(value: string): void;

    hasGameCategory(): boolean;
    clearGameCategory(): void;
    getGameCategory(): string;
    setGameCategory(value: string): void;

    hasGameCategoryLike(): boolean;
    clearGameCategoryLike(): void;
    getGameCategoryLike(): string;
    setGameCategoryLike(value: string): void;

    hasGameType(): boolean;
    clearGameType(): void;
    getGameType(): string;
    setGameType(value: string): void;

    hasGameTypeLike(): boolean;
    clearGameTypeLike(): void;
    getGameTypeLike(): string;
    setGameTypeLike(value: string): void;

    hasCurrency(): boolean;
    clearCurrency(): void;
    getCurrency(): string;
    setCurrency(value: string): void;

    hasCurrencyLike(): boolean;
    clearCurrencyLike(): void;
    getCurrencyLike(): string;
    setCurrencyLike(value: string): void;

    hasKey(): boolean;
    clearKey(): void;
    getKey(): string;
    setKey(value: string): void;

    hasKeyLike(): boolean;
    clearKeyLike(): void;
    getKeyLike(): string;
    setKeyLike(value: string): void;

    hasRefId(): boolean;
    clearRefId(): void;
    getRefId(): string;
    setRefId(value: string): void;

    hasRefIdLike(): boolean;
    clearRefIdLike(): void;
    getRefIdLike(): string;
    setRefIdLike(value: string): void;

    hasORefId(): boolean;
    clearORefId(): void;
    getORefId(): string;
    setORefId(value: string): void;

    hasORefIdLike(): boolean;
    clearORefIdLike(): void;
    getORefIdLike(): string;
    setORefIdLike(value: string): void;

    hasGroupKey(): boolean;
    clearGroupKey(): void;
    getGroupKey(): string;
    setGroupKey(value: string): void;

    hasGroupKeyLike(): boolean;
    clearGroupKeyLike(): void;
    getGroupKeyLike(): string;
    setGroupKeyLike(value: string): void;

    hasIsBonus(): boolean;
    clearIsBonus(): void;
    getIsBonus(): boolean;
    setIsBonus(value: boolean): void;

    hasIsPromo(): boolean;
    clearIsPromo(): void;
    getIsPromo(): boolean;
    setIsPromo(value: boolean): void;

    hasIsJackpot(): boolean;
    clearIsJackpot(): void;
    getIsJackpot(): boolean;
    setIsJackpot(value: boolean): void;

    hasSiteUsername(): boolean;
    clearSiteUsername(): void;
    getSiteUsername(): string;
    setSiteUsername(value: string): void;

    hasSiteUsernameLike(): boolean;
    clearSiteUsernameLike(): void;
    getSiteUsernameLike(): string;
    setSiteUsernameLike(value: string): void;

    hasBettingType(): boolean;
    clearBettingType(): void;
    getBettingType(): string;
    setBettingType(value: string): void;

    hasBettingTypeLike(): boolean;
    clearBettingTypeLike(): void;
    getBettingTypeLike(): string;
    setBettingTypeLike(value: string): void;

    hasCategory(): boolean;
    clearCategory(): void;
    getCategory(): string;
    setCategory(value: string): void;

    hasCategoryLike(): boolean;
    clearCategoryLike(): void;
    getCategoryLike(): string;
    setCategoryLike(value: string): void;

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

  export namespace Search {
    export type AsObject = {
      memberId: string;
      vendorId: number;
      vendorIdsList: Array<number>;
      vendorName: string;
      vendorNameLike: string;
      gameId: number;
      gameIdsList: Array<number>;
      gameName: string;
      gameNameLike: string;
      gameCategory: string;
      gameCategoryLike: string;
      gameType: string;
      gameTypeLike: string;
      currency: string;
      currencyLike: string;
      key: string;
      keyLike: string;
      refId: string;
      refIdLike: string;
      oRefId: string;
      oRefIdLike: string;
      groupKey: string;
      groupKeyLike: string;
      isBonus: boolean;
      isPromo: boolean;
      isJackpot: boolean;
      siteUsername: string;
      siteUsernameLike: string;
      bettingType: string;
      bettingTypeLike: string;
      category: string;
      categoryLike: string;
    };
  }
}

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

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

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

export namespace ListBettingHistoryResponse {
  export type AsObject = {
    error?: protobuf_rpc_pb.Error.AsObject;
    result?: ListBettingHistoryResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    getTotalCount(): number;
    setTotalCount(value: number): void;

    clearBettingHistoryList(): void;
    getBettingHistoryList(): Array<models_api_betting_pb.BettingHistoryModel>;
    setBettingHistoryList(
      value: Array<models_api_betting_pb.BettingHistoryModel>
    ): void;
    addBettingHistory(
      value?: models_api_betting_pb.BettingHistoryModel,
      index?: number
    ): models_api_betting_pb.BettingHistoryModel;

    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 = {
      totalCount: number;
      bettingHistoryList: Array<models_api_betting_pb.BettingHistoryModel.AsObject>;
    };
  }
}
