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

export abstract class SolutionConfigureTitles extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: {
      addPrefixOrSuffixToItems: string;
      cancelTheDialog: string;
      configureTitlesDialogHeader: string;
      enterPrefixPlaceholder: string;
      enterSuffixPlaceholder: string;
      invalidPrefixOrSuffixCharsError: string;
      invalidPrefixOrSuffixLengthError: string;
      itemDependencyReuseWarning: string;
      applyChangesAndCloseTheDialog: string;
      prefixToAddToItems: string;
      previewTheChanges: string;
      suffixToAddToItems: string;
  } & T9nMeta<{
      addPrefixOrSuffixToItems: string;
      cancelTheDialog: string;
      configureTitlesDialogHeader: string;
      enterPrefixPlaceholder: string;
      enterSuffixPlaceholder: string;
      invalidPrefixOrSuffixCharsError: string;
      invalidPrefixOrSuffixLengthError: string;
      itemDependencyReuseWarning: string;
      applyChangesAndCloseTheDialog: string;
      prefixToAddToItems: string;
      previewTheChanges: string;
      suffixToAddToItems: string;
  }>;
  /** Key details about the solution */
  accessor card: ISolutionInfoCard | undefined;
  /**
   * boolean: when true the dialog is open
   *
   * @default false
   */
  accessor open: boolean;
  /** The solution items data used here to check for and store any user defined prefix or suffix values */
  accessor solutionData: any;
  /**
   * Source from which the dialog was opened ("Card Dropdown" or "Details Page")
   *
   * @default 'Card Dropdown'
   */
  accessor source: "Card Dropdown" | "Details Page";
  /** ITemplateInfo[]: Collection of template infos */
  accessor templateInfos: ITemplateInfo[];
  /** This event will be emitted when this dialog is closed */
  readonly solutionConfigureTitlesBeforeClose: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** This event will be emitted when the titles have been updated */
  readonly solutionItemsTitlesChanged: import("@arcgis/lumina").TargetedEvent<this, void>;
  readonly "@eventTypes": {
    solutionConfigureTitlesBeforeClose: SolutionConfigureTitles["solutionConfigureTitlesBeforeClose"]["detail"];
    solutionItemsTitlesChanged: SolutionConfigureTitles["solutionItemsTitlesChanged"]["detail"];
  };
}