import type Accessor from "../../core/Accessor.js";

export interface PlacesParametersProperties extends Partial<Pick<PlacesParameters, "apiKey" | "icon" | "url">> {}

/**
 * The following properties define common properties
 * for use with [places](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-places.html). Please see the sublasses that extend this
 * class for more information about working with places.
 *
 * @since 4.27
 * @see [Sample -  Find nearby places and details](https://developers.arcgis.com/javascript/latest/sample-code/places/)
 * @see [Introduction to places](https://developers.arcgis.com/documentation/mapping-apis-and-services/places/)
 * @see [Places category finder](https://developers.arcgis.com/documentation/mapping-apis-and-services/places/places-category-finder/)
 * @see [Places service](https://developers.arcgis.com/rest/places/)
 * @see [places](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-places.html)
 * @see [FetchPlaceParameters](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-FetchPlaceParameters.html)
 * @see [PlacesQueryParameters](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PlacesQueryParameters.html)
 */
export default class PlacesParameters extends Accessor {
  constructor(properties?: PlacesParametersProperties);
  /**
   * An authorization string used to access a resource or service.
   * [API keys](https://developers.arcgis.com/documentation/security-and-authentication/api-key-authentication/) are generated and managed in the
   * portal. An API key is tied explicitly to an ArcGIS account; it is also used to
   * monitor service usage.
   * Setting a fine-grained API key on a specific class overrides the [global API key](https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#ConfigWithApiKey).
   *
   * @see [API keys](https://developers.arcgis.com/documentation/security-and-authentication/api-key-authentication/)
   */
  accessor apiKey: string | null | undefined;
  /**
   * Determines whether icons are returned and the type of icons returned.
   * The PNG icons are provided as 48 x 48 pixels but for map display the recommended size is 16 x 16 pixels.
   * Icons are not returned if the value is `null`.
   *
   * @since 4.30
   */
  accessor icon: "cim" | "png" | "svg" | null | undefined;
  /**
   * URL to the places service.
   * The places service is a ready-to-use service that can search for businesses and geographic locations around the world.
   * It allows you to discover, locate, and return detailed information about a place.
   *
   * @default "https://places-api.arcgis.com/arcgis/rest/services/places-service/v1"
   */
  accessor url: string;
}