// package: bet.beteran.c2se.backend.site
// file: c2se/backend/site.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_domain_site_pb from '../../models/domain/site_pb';

export const SUBJECT_LIST_SITES: string;
export const SUBJECT_CREATE_SITE: string;
export const SUBJECT_UPDATE_SITE: string;
export const SUBJECT_DELETE_SITE: string;

export class ListSitesRequest 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;

  hasUrlLike(): boolean;
  clearUrlLike(): void;
  getUrlLike(): string;
  setUrlLike(value: string): void;

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

  hasPathLike(): boolean;
  clearPathLike(): void;
  getPathLike(): string;
  setPathLike(value: string): void;

  hasShow(): boolean;
  clearShow(): void;
  getShow(): boolean;
  setShow(value: boolean): void;

  hasCanUse(): boolean;
  clearCanUse(): void;
  getCanUse(): boolean;
  setCanUse(value: boolean): void;

  hasMemoLike(): boolean;
  clearMemoLike(): void;
  getMemoLike(): string;
  setMemoLike(value: string): void;

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

export namespace ListSitesRequest {
  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>;
    urlLike: string;
    nameLike: string;
    pathLike: string;
    show: boolean;
    canUse: boolean;
    memoLike: string;
  };
}

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

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

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

  export class Result extends jspb.Message {
    clearSitesList(): void;
    getSitesList(): Array<models_domain_site_pb.Site>;
    setSitesList(value: Array<models_domain_site_pb.Site>): void;
    addSites(
      value?: models_domain_site_pb.Site,
      index?: number
    ): models_domain_site_pb.Site;

    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 = {
      sitesList: Array<models_domain_site_pb.Site.AsObject>;
    };
  }
}

export class CreateSiteRequest extends jspb.Message {
  getUrl(): string;
  setUrl(value: string): void;

  hasName(): boolean;
  clearName(): void;
  getName(): string;
  setName(value: string): void;

  hasPath(): boolean;
  clearPath(): void;
  getPath(): string;
  setPath(value: string): void;

  getShow(): boolean;
  setShow(value: boolean): void;

  getCanUse(): boolean;
  setCanUse(value: boolean): void;

  hasMemo(): boolean;
  clearMemo(): void;
  getMemo(): string;
  setMemo(value: string): void;

  hasExpiresAt(): boolean;
  clearExpiresAt(): void;
  getExpiresAt(): number;
  setExpiresAt(value: number): void;

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

export namespace CreateSiteRequest {
  export type AsObject = {
    url: string;
    name: string;
    path: string;
    show: boolean;
    canUse: boolean;
    memo: string;
    expiresAt: number;
  };
}

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

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

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

  export class Result extends jspb.Message {
    hasSite(): boolean;
    clearSite(): void;
    getSite(): models_domain_site_pb.Site | undefined;
    setSite(value?: models_domain_site_pb.Site): 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 = {
      site?: models_domain_site_pb.Site.AsObject;
    };
  }
}

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

  getUrl(): string;
  setUrl(value: string): void;

  hasName(): boolean;
  clearName(): void;
  getName(): string;
  setName(value: string): void;

  hasPath(): boolean;
  clearPath(): void;
  getPath(): string;
  setPath(value: string): void;

  getShow(): boolean;
  setShow(value: boolean): void;

  getCanUse(): boolean;
  setCanUse(value: boolean): void;

  hasMemo(): boolean;
  clearMemo(): void;
  getMemo(): string;
  setMemo(value: string): void;

  hasExpiresAt(): boolean;
  clearExpiresAt(): void;
  getExpiresAt(): number;
  setExpiresAt(value: number): void;

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

export namespace UpdateSiteRequest {
  export type AsObject = {
    id: string;
    url: string;
    name: string;
    path: string;
    show: boolean;
    canUse: boolean;
    memo: string;
    expiresAt: number;
  };
}

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

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

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

  export class Result extends jspb.Message {
    hasSite(): boolean;
    clearSite(): void;
    getSite(): models_domain_site_pb.Site | undefined;
    setSite(value?: models_domain_site_pb.Site): 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 = {
      site?: models_domain_site_pb.Site.AsObject;
    };
  }
}

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

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

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

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

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

export namespace DeleteSiteResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: DeleteSiteResponse.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 = {};
  }
}
