/// <reference path="../../index.d.ts" />
import type MapView from "@arcgis/core/views/MapView.js";
import type SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol.js";
import type SimpleMarkerSymbol from "@arcgis/core/symbols/SimpleMarkerSymbol.js";
import type SimpleLineSymbol from "@arcgis/core/symbols/SimpleLineSymbol.js";
import type FeatureEffect from "@arcgis/core/layers/support/FeatureEffect.js";
import type { DistanceUnit, ISearchConfiguration } from "../../utils/interfaces.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { T9nMeta } from "@arcgis/lumina/controllers";

export abstract class PublicNotification extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: {
      pdf: string;
      exportPDF: string;
      csv: string;
      exportCSV: string;
      downloadNoLists: string;
      add: string;
      remove: string;
      back: string;
      selectedFeatures: string;
      noNotifications: string;
      notifications: string;
      myLists: string;
      stepTwoFull: string;
      cancel: string;
      done: string;
      selectPDFLabelOption: string;
      removeDuplicate: string;
      numDuplicates: string;
      selectLayerAndAdd: string;
      selectSearchTip: string;
      selectLayerTip: string;
      selectSketchTip: string;
      listHasSetsTip: string;
      uniqueCout: string;
      searchDistance: string;
      useLayerFeatures: string;
      export: string;
      exportTip: string;
      title: string;
      addResults: string;
      titlePlaceholder: string;
      includeMap: string;
      pdfOptions: string;
      csvOptions: string;
      refineSelection: string;
      refineTip: string;
      refineTipNoSelections: string;
      duplicatesTip: string;
      exportListsLabel: string;
      listGraphics: string;
      listGraphicsTip: string;
      selectContentTip: string;
      formattingTip: string;
      selectMatchingInputLayersLabel: string;
      exportOptions: string;
      standard: string;
      custom: string;
      layoutTemplate: string;
      reportTemplate: string;
      reportLayer: string;
      openPdf: string;
      sourceLayerWarning: string;
  } & T9nMeta<{
      pdf: string;
      exportPDF: string;
      csv: string;
      exportCSV: string;
      downloadNoLists: string;
      add: string;
      remove: string;
      back: string;
      selectedFeatures: string;
      noNotifications: string;
      notifications: string;
      myLists: string;
      stepTwoFull: string;
      cancel: string;
      done: string;
      selectPDFLabelOption: string;
      removeDuplicate: string;
      numDuplicates: string;
      selectLayerAndAdd: string;
      selectSearchTip: string;
      selectLayerTip: string;
      selectSketchTip: string;
      listHasSetsTip: string;
      uniqueCout: string;
      searchDistance: string;
      useLayerFeatures: string;
      export: string;
      exportTip: string;
      title: string;
      addResults: string;
      titlePlaceholder: string;
      includeMap: string;
      pdfOptions: string;
      csvOptions: string;
      refineSelection: string;
      refineTip: string;
      refineTipNoSelections: string;
      duplicatesTip: string;
      exportListsLabel: string;
      listGraphics: string;
      listGraphicsTip: string;
      selectContentTip: string;
      formattingTip: string;
      selectMatchingInputLayersLabel: string;
      exportOptions: string;
      standard: string;
      custom: string;
      layoutTemplate: string;
      reportTemplate: string;
      reportLayer: string;
      openPdf: string;
      sourceLayerWarning: string;
  }>;
  /** string[]: List of layer ids that should be shown as potential addressee layers */
  accessor addresseeLayerIds: string[];
  /** string | number[] |  object with r, g, b, a: https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html */
  accessor bufferColor: any;
  /** string | number[] | object with r, g, b, a: https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html */
  accessor bufferOutlineColor: any;
  /**
   * boolean: When true the custom export functionality should be shown
   *
   * @default false
   */
  accessor customExport: boolean;
  /**
   * string: The custom print service URL
   *
   * @default ''
   */
  accessor customExportURL: string;
  /**
   * boolean: When true the user can define a name for each notification list
   *
   * @default false
   */
  accessor customLabelEnabled: boolean;
  /**
   * number: The default value to show for the buffer distance
   *
   * @default 0
   */
  accessor defaultBufferDistance: number;
  /**
   * number: The default value to show for the buffer unit ('feet'|'meters'|'miles'|'kilometers')
   *
   * @default 'feet'
   */
  accessor defaultBufferUnit: DistanceUnit;
  /**
   * string: The default value to use for the export title
   *
   * @default ''
   */
  accessor defaultExportTitle: string;
  /**
   * number: The default number of labels per page to export
   *
   * @default 6
   */
  accessor defaultNumLabelsPerPage: number;
  /**
   * boolean: When true users will be allowed to optionally use features from a layer as the selection geometry
   *
   * @default true
   */
  accessor enableLayerFeatures: boolean;
  /**
   * boolean: When true the use features from a layer options will be enabled when the component loads
   *
   * @default false
   */
  accessor enableLayerFeaturesOnLoad: boolean;
  /**
   * boolean: When true users will be allowed to optionally create a buffer around the selection geometry
   *
   * @default true
   */
  accessor enableSearchDistance: boolean;
  /**
   * boolean: When true the serach distance options will be enabled when the component loads
   *
   * @default false
   */
  accessor enableSearchDistanceOnLoad: boolean;
  /**
   * boolean: When true sketch tools will be provided to allow users to draw a selection geometry
   *
   * @default true
   */
  accessor enableSketchTools: boolean;
  /**
   * The effect that will be applied when featureHighlightEnabled is true
   *
   * FeatureEffect: https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureEffect/
   */
  accessor featureEffect: FeatureEffect | undefined;
  /**
   * boolean: When enabled features will be highlighted when their notification list item is clicked.
   *
   * @default false
   */
  accessor featureHighlightEnabled: boolean;
  /**
   * string: The value to show in the initial notice to help with on boarding the user.
   * When left empty the selectLayerAndAdd text from the nls will be used.
   *
   * @default ''
   */
  accessor initialNotice: string;
  /** MapView: https://developers.arcgis.com/javascript/latest/references/core/views/MapView/ */
  accessor mapView: MapView | undefined;
  /**
   * string: The value to show for no results
   * when left empty the default text '0 selected features from {layerTitle}' will be shown
   *
   * @default ''
   */
  accessor noResultText: string;
  /** ISearchConfiguration: Configuration details for the Search widget */
  accessor searchConfiguration: ISearchConfiguration | undefined;
  /**
   * string[]: List of layer ids that should be shown as potential selection layers
   * when skectching with 'Use layer features' option
   */
  accessor selectionLayerIds: string[];
  /**
   * boolean: When true the refine selection workflow will be included in the UI
   *
   * @default false
   */
  accessor showRefineSelection: boolean;
  /**
   * boolean: When false no buffer distance or unit controls will be exposed
   *
   * @default true
   */
  accessor showSearchSettings: boolean;
  /**
   * SimpleLineSymbol: https://developers.arcgis.com/javascript/latest/references/core/symbols/SimpleLineSymbol/
   *
   * A JSON representation of the instance in the ArcGIS format.
   * See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.
   * https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm
   */
  accessor sketchLineSymbol: SimpleLineSymbol | undefined;
  /**
   * SimpleMarkerSymbol: https://developers.arcgis.com/javascript/latest/references/core/symbols/SimpleMarkerSymbol/
   *
   * A JSON representation of the instance in the ArcGIS format.
   * See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.
   * https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm
   */
  accessor sketchPointSymbol: SimpleMarkerSymbol | undefined;
  /**
   * SimpleFillSymbol: https://developers.arcgis.com/javascript/latest/references/core/symbols/SimpleFillSymbol/
   *
   * A JSON representation of the instance in the ArcGIS format.
   * See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.
   * https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm
   */
  accessor sketchPolygonSymbol: SimpleFillSymbol | undefined;
  /** Emitted on demand when searchConfiguration gets a new value */
  readonly searchConfigurationChange: import("@arcgis/lumina").TargetedEvent<this, ISearchConfiguration>;
  readonly "@eventTypes": {
    searchConfigurationChange: PublicNotification["searchConfigurationChange"]["detail"];
  };
}