/// <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 SolutionDeployingDialog extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: {
      cancel: string;
      cancelCurrentDeployment: string;
      cancelDeploymentHeader: string;
      cancelDeploymentButton: string;
      carousel: {
          stockMessage1: string;
          stockMessage2: string;
          stockMessage3: string;
          stockMessage4: string;
          stockMessage5: string;
          stockMessage6: string;
      };
      continueDeployment: string;
      deploymentCancelMessage: string;
      deploymentInProgress: string;
      newsAndFeatures: string;
      title: string;
  } & T9nMeta<{
      cancel: string;
      cancelCurrentDeployment: string;
      cancelDeploymentHeader: string;
      cancelDeploymentButton: string;
      carousel: {
          stockMessage1: string;
          stockMessage2: string;
          stockMessage3: string;
          stockMessage4: string;
          stockMessage5: string;
          stockMessage6: string;
      };
      continueDeployment: string;
      deploymentCancelMessage: string;
      deploymentInProgress: string;
      newsAndFeatures: string;
      title: string;
  }>;
  /** Abort controller to stop the deploying. Actual cancel callback is in solution-details */
  accessor abortController: AbortController | undefined;
  /** Key details about the solution */
  accessor card: ISolutionInfoCard | undefined;
  /**
   * Percentage of completion for solution deployment
   *
   * @default 0
   */
  accessor deploymentProgress: number;
  /**
   * Track when deployment is complete and we're waiting for card to be ready
   *
   * @default false
   */
  accessor isWaitingForCard: boolean;
  /**
   * When true the dialog will be shown
   *
   * @default false
   */
  accessor open: boolean;
  /** Cancel the current deployment */
  cancelDeployment(): void;
  /** Closes the dialog */
  close(): void;
  /** Confirm cancel the deployment */
  confirmCancel(): void;
  /** Emitted when the deploying dialog opens */
  readonly deployingDialogOpened: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Emitted when deployment is cancelled by the user during deployment */
  readonly deploymentProcessCancelled: import("@arcgis/lumina").TargetedEvent<this, void>;
  readonly "@eventTypes": {
    deployingDialogOpened: SolutionDeployingDialog["deployingDialogOpened"]["detail"];
    deploymentProcessCancelled: SolutionDeployingDialog["deploymentProcessCancelled"]["detail"];
  };
}