import { LikeProxy } from "./like-proxy";
export class LikeController {
  /**
   * Creates a proxy to communicate likes
   * @param {Feature | MapboxGeoJSONFeature} feature The feature whose likes to change. Can be either just a geojson Feature or a MapboxGeoJSONFeature with extra layer information
   * @param {LikeOptions} options Extra options for the like controller
   * @returns
   */
  async create(feature, options = {}) {
    return new LikeProxy(feature, options);
  }
  static get is() { return "gl-like-controller"; }
  static get methods() {
    return {
      "create": {
        "complexType": {
          "signature": "(feature: Feature | MapGeoJSONFeature, options?: LikeOptions) => Promise<LikeProxy>",
          "parameters": [{
              "tags": [{
                  "name": "param",
                  "text": "feature The feature whose likes to change. Can be either just a geojson Feature or a MapboxGeoJSONFeature with extra layer information"
                }],
              "text": "The feature whose likes to change. Can be either just a geojson Feature or a MapboxGeoJSONFeature with extra layer information"
            }, {
              "tags": [{
                  "name": "param",
                  "text": "options Extra options for the like controller"
                }],
              "text": "Extra options for the like controller"
            }],
          "references": {
            "Promise": {
              "location": "global",
              "id": "global::Promise"
            },
            "LikeProxy": {
              "location": "import",
              "path": "./like-proxy",
              "id": "src/components/like-controller/like-proxy.ts::LikeProxy"
            },
            "Feature": {
              "location": "import",
              "path": "geojson",
              "id": ""
            },
            "MapGeoJSONFeature": {
              "location": "import",
              "path": "maplibre-gl",
              "id": ""
            },
            "LikeOptions": {
              "location": "import",
              "path": "./interface",
              "id": "src/components/like-controller/interface.ts::LikeOptions"
            }
          },
          "return": "Promise<LikeProxy>"
        },
        "docs": {
          "text": "Creates a proxy to communicate likes",
          "tags": [{
              "name": "param",
              "text": "feature The feature whose likes to change. Can be either just a geojson Feature or a MapboxGeoJSONFeature with extra layer information"
            }, {
              "name": "param",
              "text": "options Extra options for the like controller"
            }, {
              "name": "returns",
              "text": undefined
            }]
        }
      }
    };
  }
}
//# sourceMappingURL=like-controller.js.map
