import { EventEmitter } from "../../stencil-public-runtime";
import { LikeProxy } from "../like-controller/like-proxy";
import { Feature } from "geojson";
import { MapGeoJSONFeature } from "maplibre-gl";
export declare class LikeButton {
  el: HTMLGlLikeButtonElement;
  count: number;
  liked: boolean;
  proxy: LikeProxy;
  likeCtrl: HTMLGlLikeControllerElement;
  restCtrl: HTMLGlRestControllerElement;
  /**
   * The attribute which stores the number of likes this feature has received
   */
  readonly attribute: string;
  /**
   * Whether or not this like button is disabled
   */
  readonly disabled: boolean;
  /**
   * The feature this like button is for
   */
  readonly feature: Feature | MapGeoJSONFeature;
  /**
   * The icon for the like button if the user has not liked the feature
   */
  readonly iconNo: string;
  /**
   * The icon for the like button if the user
   */
  readonly iconYes: string;
  /**
   * The HTTP method this like button uses to communicate a like
   */
  readonly method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
  /**
   * The cors mode this like button uses to communicate
   */
  readonly requestMode: RequestMode;
  /**
   * The authentication token this like button uses when communicating
   */
  readonly token: string;
  /**
   * The url to the endpoint which which the like button communicates.
   * Most likely this will be the end point of a features-api instance.
   */
  readonly url: string;
  /**
   * An event emitted when the user presses the like button
   */
  glLike: EventEmitter<{
    success: boolean;
    feature: Feature | MapGeoJSONFeature;
    action: "like" | "unlike";
    client_id: string;
  }>;
  componentWillLoad(): Promise<void>;
  setState(): Promise<void>;
  private toggle;
  private likeClicked;
  render(): any;
}
