/// <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 SolutionDetailsCard extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: {
      arcgisSolutions: string;
      newSolution: string;
      updated: string;
      deployed: string;
      viewDetails: string;
      deployedTitle: string;
      deployedPreviousTitle: string;
  } & T9nMeta<{
      arcgisSolutions: string;
      newSolution: string;
      updated: string;
      deployed: string;
      viewDetails: string;
      deployedTitle: string;
      deployedPreviousTitle: string;
  }>;
  /** The solutions card */
  accessor card: ISolutionInfoCard | undefined;
  /**
   * Referrer solution ID for telemetry tracking (used when card is in 'you-may-also-like')
   *
   * @default ''
   */
  accessor referrerSolutionId: string;
  /**
   * Referrer solution title for telemetry tracking (used when card is in 'you-may-also-like')
   *
   * @default ''
   */
  accessor referrerSolutionTitle: string;
  /**
   * Referrer solution version for telemetry tracking (used when card is in 'you-may-also-like')
   *
   * @default ''
   */
  accessor referrerSolutionVersion: string;
  /**
   * Source context for telemetry tracking (e.g., 'all-solutions', 'you-may-also-like')
   *
   * @default 'all-solutions'
   */
  accessor source: string;
  /** Emitted on demand when the details card is selected. */
  readonly detailsCardSelected: import("@arcgis/lumina").TargetedEvent<this, ISolutionInfoCard>;
  readonly "@eventTypes": {
    detailsCardSelected: SolutionDetailsCard["detailsCardSelected"]["detail"];
  };
}