// package: bet.beteran.c2se.api.vendor
// file: c2se/api/vendor.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_vendor_pb from '../../models/api/vendor_pb';

export class ListVendorsRequest 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(): ListVendorsRequest.Search | undefined;
  setSearch(value?: ListVendorsRequest.Search): void;

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

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

  export class Search extends jspb.Message {
    hasCompanyId(): boolean;
    clearCompanyId(): void;
    getCompanyId(): number;
    setCompanyId(value: number): void;

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

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

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

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

    hasIsEnable(): boolean;
    clearIsEnable(): void;
    getIsEnable(): string;
    setIsEnable(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 = {
      companyId: number;
      vendorId: number;
      keyLike: string;
      nameLike: string;
      categoryLike: string;
      isEnable: string;
    };
  }
}

export class ListVendorsResponse 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(): ListVendorsResponse.Result | undefined;
  setResult(value?: ListVendorsResponse.Result): void;

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

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

  export class Result extends jspb.Message {
    clearVendorsList(): void;
    getVendorsList(): Array<models_api_vendor_pb.Vendor>;
    setVendorsList(value: Array<models_api_vendor_pb.Vendor>): void;
    addVendors(
      value?: models_api_vendor_pb.Vendor,
      index?: number
    ): models_api_vendor_pb.Vendor;

    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 = {
      vendorsList: Array<models_api_vendor_pb.Vendor.AsObject>;
    };
  }
}
