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

export abstract class SolutionDetailsPanel extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: {
      dataDictionary: string;
      deployButton: string;
      deployedChip: string;
      deployedTitle: string;
      deployedPreviousTitle: string;
      description: string;
      solutionOverview: string;
      solutionDetails: string;
      informationProducts: string;
      informationProductsFooterText: string;
      informationProductsSubText: string;
      solutionItem: string;
      learnHowtoUse: string;
      learnMore: string;
      openHelp: string;
      minimumUserType: string;
      newChip: string;
      openInGallery: string;
      relatedResources: string;
      releaseNotes: string;
      releaseNotesSubText: string;
      requirements: string;
      requirementsSubText: string;
      share: string;
      showLess: string;
      showMore: string;
      termsOfUse: string;
      updatedChip: string;
      version: string;
      watchDemo: string;
      youMayAlsoLike: string;
      configure: {
          servicesLabel: string;
          featureServiceInfo: string;
          validate: string;
          invalidID: string;
          spatialReferencePlaceholder: string;
          spatialReferenceLabel: string;
          spatialReferenceInfo: string;
          itemIdPlaceholder: 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;
          };
          suggestedProblemRemedyMessage: string;
      };
  } & T9nMeta<{
      dataDictionary: string;
      deployButton: string;
      deployedChip: string;
      deployedTitle: string;
      deployedPreviousTitle: string;
      description: string;
      solutionOverview: string;
      solutionDetails: string;
      informationProducts: string;
      informationProductsFooterText: string;
      informationProductsSubText: string;
      solutionItem: string;
      learnHowtoUse: string;
      learnMore: string;
      openHelp: string;
      minimumUserType: string;
      newChip: string;
      openInGallery: string;
      relatedResources: string;
      releaseNotes: string;
      releaseNotesSubText: string;
      requirements: string;
      requirementsSubText: string;
      share: string;
      showLess: string;
      showMore: string;
      termsOfUse: string;
      updatedChip: string;
      version: string;
      watchDemo: string;
      youMayAlsoLike: string;
      configure: {
          servicesLabel: string;
          featureServiceInfo: string;
          validate: string;
          invalidID: string;
          spatialReferencePlaceholder: string;
          spatialReferenceLabel: string;
          spatialReferenceInfo: string;
          itemIdPlaceholder: 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;
          };
          suggestedProblemRemedyMessage: string;
      };
  }>;
  /** Key details about the solution */
  accessor card: ISolutionInfoCard | undefined;
  /**
   * The localized read-only notice message to display when the connected portal
   * is in read-only mode.
   *
   * @default ''
   */
  accessor readOnlyNotice: string;
  /** Emitted on demand when the item properties have been fetched */
  readonly itemPropertiesFetched: import("@arcgis/lumina").TargetedEvent<this, IItemProperties>;
  /** Emitted on demand when the sort type changes */
  readonly sortTypeChanged: import("@arcgis/lumina").TargetedEvent<this, string>;
  /** Emitted on demand when the templates have been fetched from the solution */
  readonly templatesFetched: import("@arcgis/lumina").TargetedEvent<this, IItemTemplate[]>;
  /** Emitted on demand when the auth token is updated */
  readonly tokenRefreshed: import("@arcgis/lumina").TargetedEvent<this, string>;
  readonly "@eventTypes": {
    itemPropertiesFetched: SolutionDetailsPanel["itemPropertiesFetched"]["detail"];
    sortTypeChanged: SolutionDetailsPanel["sortTypeChanged"]["detail"];
    templatesFetched: SolutionDetailsPanel["templatesFetched"]["detail"];
    tokenRefreshed: SolutionDetailsPanel["tokenRefreshed"]["detail"];
  };
}