sig
  module Labels :
    sig
      type t = {
        displayName : string;
        label_with_op : string;
        name : string;
      }
      val displayName :
        (GapiCustomsearchV1Model.Result.Labels.t, string) GapiLens.t
      val label_with_op :
        (GapiCustomsearchV1Model.Result.Labels.t, string) GapiLens.t
      val name : (GapiCustomsearchV1Model.Result.Labels.t, string) GapiLens.t
      val empty : GapiCustomsearchV1Model.Result.Labels.t
      val render :
        GapiCustomsearchV1Model.Result.Labels.t ->
        GapiJson.json_data_model list
      val parse :
        GapiCustomsearchV1Model.Result.Labels.t ->
        GapiJson.json_data_model -> GapiCustomsearchV1Model.Result.Labels.t
    end
  module Image :
    sig
      type t = {
        byteSize : int;
        contextLink : string;
        height : int;
        thumbnailHeight : int;
        thumbnailLink : string;
        thumbnailWidth : int;
        width : int;
      }
      val byteSize : (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t
      val contextLink :
        (GapiCustomsearchV1Model.Result.Image.t, string) GapiLens.t
      val height : (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t
      val thumbnailHeight :
        (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t
      val thumbnailLink :
        (GapiCustomsearchV1Model.Result.Image.t, string) GapiLens.t
      val thumbnailWidth :
        (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t
      val width : (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t
      val empty : GapiCustomsearchV1Model.Result.Image.t
      val render :
        GapiCustomsearchV1Model.Result.Image.t ->
        GapiJson.json_data_model list
      val parse :
        GapiCustomsearchV1Model.Result.Image.t ->
        GapiJson.json_data_model -> GapiCustomsearchV1Model.Result.Image.t
    end
  type t = {
    cacheId : string;
    displayLink : string;
    fileFormat : string;
    formattedUrl : string;
    htmlFormattedUrl : string;
    htmlSnippet : string;
    htmlTitle : string;
    image : GapiCustomsearchV1Model.Result.Image.t;
    kind : string;
    labels : GapiCustomsearchV1Model.Result.Labels.t list;
    link : string;
    mime : string;
    pagemap : (string * (string * string) list list) list;
    snippet : string;
    title : string;
  }
  val cacheId : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val displayLink : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val fileFormat : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val formattedUrl : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val htmlFormattedUrl :
    (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val htmlSnippet : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val htmlTitle : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val image :
    (GapiCustomsearchV1Model.Result.t,
     GapiCustomsearchV1Model.Result.Image.t)
    GapiLens.t
  val kind : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val labels :
    (GapiCustomsearchV1Model.Result.t,
     GapiCustomsearchV1Model.Result.Labels.t list)
    GapiLens.t
  val link : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val mime : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val pagemap :
    (GapiCustomsearchV1Model.Result.t,
     (string * (string * string) list list) list)
    GapiLens.t
  val snippet : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val title : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t
  val empty : GapiCustomsearchV1Model.Result.t
  val render :
    GapiCustomsearchV1Model.Result.t -> GapiJson.json_data_model list
  val parse :
    GapiCustomsearchV1Model.Result.t ->
    GapiJson.json_data_model -> GapiCustomsearchV1Model.Result.t
  val to_data_model :
    GapiCustomsearchV1Model.Result.t -> GapiJson.json_data_model
  val of_data_model :
    GapiJson.json_data_model -> GapiCustomsearchV1Model.Result.t
end