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

export abstract class SolutionBuilderAssistant extends LitElement {
  /**
   * Translations
   *
   * @internal
   */
  protected _translations: {
      headerTitle: string;
      noticeMessage: string;
      draft: string;
      undo: string;
      redo: string;
      hideBuilder: string;
      assistantLoading: string;
      name: string;
      namePlaceholder: string;
      solutionNameErrorBlank: string;
      solutionNameErrorLength: string;
      solutionNameErrorSpecialCharacter: string;
      description: string;
      solutionDescriptionPlaceholder: string;
      descriptionErrorLength: string;
      descriptionErrorSpecialCharacter: string;
      deploy: string;
      viewDiagram: string;
      openHelp: string;
      discard: string;
      discardSolution: string;
      discardChanges: string;
      discardMessage: string;
      discardFlowChangesMessage: string;
      contents: string;
      featureLayer: string;
      customizeLayer: string;
      layers: string;
      solutionContentItems: string;
      edit: string;
      editItemContent: string;
      title: string;
      itemTitle: string;
      titlePlaceholder: string;
      itemTitleErrorBlank: string;
      itemTitleErrorLength: string;
      itemTitleErrorSpecialCharacter: string;
      itemDescription: string;
      descriptionPlaceholder: string;
      itemDescriptionErrorLength: string;
      itemDescriptionErrorSpecialCharacter: string;
      add: string;
      apply: string;
      close: string;
      cancel: string;
      solutionThumbnail: string;
      selectLayer: string;
      layerProperties: string;
      addLayer: string;
      layerNamePlaceholder: string;
      layerNameErrorBlank: string;
      layerNameErrorLength: string;
      layerNameErrorSpecialCharacter: string;
      layerNameErrorDuplicate: string;
      type: string;
      pointLayer: string;
      lineLayer: string;
      polygonLayer: string;
      tableLayer: string;
      layerDescriptionPlaceholder: string;
      layerDescriptionErrorLength: string;
      layerDescriptionErrorSpecialCharacter: string;
      fields: string;
      displayName: string;
      displayNamePlaceholder: string;
      displayNameErrorBlank: string;
      displayNameErrorLength: string;
      fieldName: string;
      fieldNamePlaceholder: string;
      fieldNameErrorBlank: string;
      fieldNameErrorInvalidChars: string;
      fieldNameErrorLength: string;
      fieldNameErrorExists: string;
      fieldNameErrorSQLKeyword: string;
      fieldNameErrorSystemField: string;
      fieldDescription: string;
      fieldDescriptionPlaceholder: string;
      fieldDescriptionErrorLength: string;
      fieldDescriptionErrorSpecialCharacter: string;
      domainValues: string;
      addDomainValue: string;
      deleteList: string;
      invalidSolutionName: string;
      invalidLayerNameOrDescription: string;
      invalidItemTitleOrDescription: string;
      invalidFieldProperties: string;
      domain: string;
      addField: string;
      editField: string;
      systemFieldsNote: string;
      requiredFieldNote: string;
      requiredFieldTooltip: string;
      done: string;
      removeLayer: string;
      deleteFields: string;
      deleteField: string;
      requiredFieldsCannotBeDeleted: string;
      delete: string;
      stringType: string;
      integerType: string;
      doubleType: string;
      dateType: string;
      guidType: string;
      globalIdType: string;
      objectIdType: string;
      domainList: string;
      fieldTypeWithLength: string;
      length: string;
      lengthErrorOutOfRange: string;
      domainValuePlaceholder: string;
      domainValueErrorEmpty: string;
      domainValueErrorDuplicate: string;
      domainValueErrorExceedsLength: string;
      fieldValueType_nameOrTitle: string;
      fieldValueType_description: string;
      fieldValueType_typeOrCategory: string;
      fieldValueType_countOrAmount: string;
      fieldValueType_percentageOrRatio: string;
      fieldValueType_measurement: string;
      fieldValueType_currency: string;
      fieldValueType_uniqueIdentifier: string;
      fieldValueType_phoneNumber: string;
      fieldValueType_emailAddress: string;
      fieldValueType_orderedOrRanked: string;
      fieldValueType_binary: string;
      fieldValueType_locationOrPlaceName: string;
      fieldValueType_coordinate: string;
      fieldValueType_dateAndTime: string;
      fieldValueType_none: string;
      checkPrivileges: string;
      missingPrivilegesPopup: {
          missingLicensingOrPrivileges: string;
          missingPrivilegesListHeading: string;
          requiredPrivilegesList: {
              addMembers: string;
              createGroup: string;
              createItem: string;
              publishFeatures: string;
              shareToGroup: string;
              publishFeeds: string;
              publishRealTimeAnalytics: string;
              publishBigDataAnalytics: string;
              requiresAdmin: string;
              requiresLocationTrackingAndAdmin: string;
              requiresLocationTracking: string;
              requiresNotebookServer: string;
              hubPremium: string;
              workflowManager: string;
              velocity: string;
              publishGPServices: string;
              webtool: string;
          };
      };
      editItemPropertiesTooltip: string;
      editLayerPropertiesTooltip: string;
      editFieldPropertiesTooltip: string;
  } & T9nMeta<{
      headerTitle: string;
      noticeMessage: string;
      draft: string;
      undo: string;
      redo: string;
      hideBuilder: string;
      assistantLoading: string;
      name: string;
      namePlaceholder: string;
      solutionNameErrorBlank: string;
      solutionNameErrorLength: string;
      solutionNameErrorSpecialCharacter: string;
      description: string;
      solutionDescriptionPlaceholder: string;
      descriptionErrorLength: string;
      descriptionErrorSpecialCharacter: string;
      deploy: string;
      viewDiagram: string;
      openHelp: string;
      discard: string;
      discardSolution: string;
      discardChanges: string;
      discardMessage: string;
      discardFlowChangesMessage: string;
      contents: string;
      featureLayer: string;
      customizeLayer: string;
      layers: string;
      solutionContentItems: string;
      edit: string;
      editItemContent: string;
      title: string;
      itemTitle: string;
      titlePlaceholder: string;
      itemTitleErrorBlank: string;
      itemTitleErrorLength: string;
      itemTitleErrorSpecialCharacter: string;
      itemDescription: string;
      descriptionPlaceholder: string;
      itemDescriptionErrorLength: string;
      itemDescriptionErrorSpecialCharacter: string;
      add: string;
      apply: string;
      close: string;
      cancel: string;
      solutionThumbnail: string;
      selectLayer: string;
      layerProperties: string;
      addLayer: string;
      layerNamePlaceholder: string;
      layerNameErrorBlank: string;
      layerNameErrorLength: string;
      layerNameErrorSpecialCharacter: string;
      layerNameErrorDuplicate: string;
      type: string;
      pointLayer: string;
      lineLayer: string;
      polygonLayer: string;
      tableLayer: string;
      layerDescriptionPlaceholder: string;
      layerDescriptionErrorLength: string;
      layerDescriptionErrorSpecialCharacter: string;
      fields: string;
      displayName: string;
      displayNamePlaceholder: string;
      displayNameErrorBlank: string;
      displayNameErrorLength: string;
      fieldName: string;
      fieldNamePlaceholder: string;
      fieldNameErrorBlank: string;
      fieldNameErrorInvalidChars: string;
      fieldNameErrorLength: string;
      fieldNameErrorExists: string;
      fieldNameErrorSQLKeyword: string;
      fieldNameErrorSystemField: string;
      fieldDescription: string;
      fieldDescriptionPlaceholder: string;
      fieldDescriptionErrorLength: string;
      fieldDescriptionErrorSpecialCharacter: string;
      domainValues: string;
      addDomainValue: string;
      deleteList: string;
      invalidSolutionName: string;
      invalidLayerNameOrDescription: string;
      invalidItemTitleOrDescription: string;
      invalidFieldProperties: string;
      domain: string;
      addField: string;
      editField: string;
      systemFieldsNote: string;
      requiredFieldNote: string;
      requiredFieldTooltip: string;
      done: string;
      removeLayer: string;
      deleteFields: string;
      deleteField: string;
      requiredFieldsCannotBeDeleted: string;
      delete: string;
      stringType: string;
      integerType: string;
      doubleType: string;
      dateType: string;
      guidType: string;
      globalIdType: string;
      objectIdType: string;
      domainList: string;
      fieldTypeWithLength: string;
      length: string;
      lengthErrorOutOfRange: string;
      domainValuePlaceholder: string;
      domainValueErrorEmpty: string;
      domainValueErrorDuplicate: string;
      domainValueErrorExceedsLength: string;
      fieldValueType_nameOrTitle: string;
      fieldValueType_description: string;
      fieldValueType_typeOrCategory: string;
      fieldValueType_countOrAmount: string;
      fieldValueType_percentageOrRatio: string;
      fieldValueType_measurement: string;
      fieldValueType_currency: string;
      fieldValueType_uniqueIdentifier: string;
      fieldValueType_phoneNumber: string;
      fieldValueType_emailAddress: string;
      fieldValueType_orderedOrRanked: string;
      fieldValueType_binary: string;
      fieldValueType_locationOrPlaceName: string;
      fieldValueType_coordinate: string;
      fieldValueType_dateAndTime: string;
      fieldValueType_none: string;
      checkPrivileges: string;
      missingPrivilegesPopup: {
          missingLicensingOrPrivileges: string;
          missingPrivilegesListHeading: string;
          requiredPrivilegesList: {
              addMembers: string;
              createGroup: string;
              createItem: string;
              publishFeatures: string;
              shareToGroup: string;
              publishFeeds: string;
              publishRealTimeAnalytics: string;
              publishBigDataAnalytics: string;
              requiresAdmin: string;
              requiresLocationTrackingAndAdmin: string;
              requiresLocationTracking: string;
              requiresNotebookServer: string;
              hubPremium: string;
              workflowManager: string;
              velocity: string;
              publishGPServices: string;
              webtool: string;
          };
      };
      editItemPropertiesTooltip: string;
      editLayerPropertiesTooltip: string;
      editFieldPropertiesTooltip: string;
  }>;
  /** Solution design - can be set externally for demo/testing */
  accessor design: ISolutionDesign | null;
  /**
   * The localized read-only notice message to display when the connected portal
   * is in read-only mode. Provided by the parent app so the copy is sourced from
   * a single place.
   *
   * @default ''
   */
  accessor readOnlyNotice: string;
  /** Emitted on demand when cards are fetched */
  readonly discardBuilder: import("@arcgis/lumina").TargetedEvent<this, boolean>;
  readonly "@eventTypes": {
    discardBuilder: SolutionBuilderAssistant["discardBuilder"]["detail"];
  };
}