/// <reference path="../../index.d.ts" />
import type FeatureLayer from "@arcgis/core/layers/FeatureLayer.js";
import type { EditType } from "../../utils/interfaces.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { T9nMeta } from "@arcgis/lumina/controllers";

export abstract class DeleteDialog extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: {
      cancel: string;
      confirmMultiple: string;
      confirmSingle: string;
      delete: string;
      deleteCount: string;
      deleteFeature: string;
  } & T9nMeta<{
      cancel: string;
      confirmMultiple: string;
      confirmSingle: string;
      delete: string;
      deleteCount: string;
      deleteFeature: string;
  }>;
  /** number[]: The ids that would be deleted */
  accessor ids: (number | string)[];
  /** FeatureLayer: The layer from which features will be deleted */
  accessor layer: FeatureLayer | undefined;
  /**
   * boolean: When true the delete dialog will be displayed
   *
   * @default false
   */
  accessor open: boolean;
  /** Emitted on demand when features have been deleted */
  readonly deleteDialogClose: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Emitted on demand when features have been deleted */
  readonly editsComplete: import("@arcgis/lumina").TargetedEvent<this, EditType>;
  readonly "@eventTypes": {
    deleteDialogClose: DeleteDialog["deleteDialogClose"]["detail"];
    editsComplete: DeleteDialog["editsComplete"]["detail"];
  };
}