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

export abstract class SolutionDeleteDialog extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: {
      buttonCancel: string;
      buttonClose: string;
      buttonDelete: string;
      deletionCount: string;
      deleteInProgress: string;
      deletionNote: string;
      failedToDelete: string;
      failedToDeleteItems: string;
      itemDependencyReusewarning: string;
      title: string;
  } & T9nMeta<{
      buttonCancel: string;
      buttonClose: string;
      buttonDelete: string;
      deletionCount: string;
      deleteInProgress: string;
      deletionNote: string;
      failedToDelete: string;
      failedToDeleteItems: string;
      itemDependencyReusewarning: string;
      title: string;
  }>;
  /**
   * Key details about the solution
   *
   * @required
   */
  accessor card: ISolutionInfoCard | undefined;
  /**
   * When true the dialog will be shown
   *
   * @default false
   */
  accessor open: boolean;
  /**
   * Source from which the dialog was opened ("Card Dropdown" or "Details Page")
   *
   * @default 'Card Dropdown'
   */
  accessor source: "Card Dropdown" | "Details Page";
  /** Closes the panel */
  close(): void;
  /** Deletes the solution provided in the card property. */
  delete(): void;
  /** Emitted after delete process to refresh solutions list */
  readonly solutionDeleted: import("@arcgis/lumina").TargetedEvent<this, {
      showAlert: boolean;
      refreshSolutionsTimeout: boolean;
      solutionTitle?: string;
  }>;
  /** This event will be emitted on dialog before close */
  readonly solutionDeleteDialogBeforeClose: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Emitted when the dialog is closed. */
  readonly solutionDeleteDialogOpen: import("@arcgis/lumina").TargetedEvent<this, boolean>;
  readonly "@eventTypes": {
    solutionDeleted: SolutionDeleteDialog["solutionDeleted"]["detail"];
    solutionDeleteDialogBeforeClose: SolutionDeleteDialog["solutionDeleteDialogBeforeClose"]["detail"];
    solutionDeleteDialogOpen: SolutionDeleteDialog["solutionDeleteDialogOpen"]["detail"];
  };
}