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

/**
 * @cssproperty [--solutions-social-share-action-width] - Width of action button
 * @cssproperty [--solutions-social-share-width--s] - Width of component when scale is set to `s`
 * @cssproperty [--solutions-social-share-width--m] - Width of component when scale is set to `m`
 * @cssproperty [--solutions-social-share-width--l] - Width of component when scale is set to `l`
 * @cssproperty [--solutions-social-share-width-horizontal--s] - Width of component when `share-icons-layout` is set to `horizontal` and scale is set to 's'
 * @cssproperty [--solutions-social-share-width-horizontal--m] - Width of component when `share-icons-layout` is set to `horizontal` and scale is set to 'm'
 * @cssproperty [--solutions-social-share-width-horizontal--l] - Width of component when `share-icons-layout` is set to `horizontal` and scale is set to 'l'
 */
export abstract class SolutionSocialShare extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: {
      share: { label: string; };
      success: {
          label: string;
          url: string;
      };
      options: {
          link: {
              label: string;
              tooltip: string;
          };
          facebook: {
              label: string;
              tooltip: string;
          };
          twitter: {
              label: string;
              tooltip: string;
          };
          linkedIn: {
              label: string;
              tooltip: string;
          };
          blueSky: {
              label: string;
              tooltip: string;
          };
      };
  } & T9nMeta<{
      share: { label: string; };
      success: {
          label: string;
          url: string;
      };
      options: {
          link: {
              label: string;
              tooltip: string;
          };
          facebook: {
              label: string;
              tooltip: string;
          };
          twitter: {
              label: string;
              tooltip: string;
          };
          linkedIn: {
              label: string;
              tooltip: string;
          };
          blueSky: {
              label: string;
              tooltip: string;
          };
      };
  }>;
  /**
   * Control the apperance of the action
   *
   * @default 'transparent'
   */
  accessor actionApperance: "solid" | "transparent" | undefined;
  /**
   * Auto update share URL.
   *
   * @default true
   */
  accessor autoUpdateShareUrl: boolean;
  /**
   * Control the apperance of the button
   *
   * @default 'transparent'
   */
  accessor buttonAppearance: "outline" | "outline-fill" | "solid" | "transparent" | undefined;
  /**
   * Configures the placement of the success message popover for the 'Copy Link' button.
   * See options here: https://github.com/Esri/calcite-components/blob/v1.0.0-beta.83/src/utils/popper.ts#L34
   *
   * @default 'trailing'
   */
  accessor inlineSuccessPopoverPlacement: any;
  /**
   * Renders tool as a popover with a trigger button, or inline to place in a custom container.
   *
   * @default 'popover'
   */
  accessor mode: "inline" | "popover";
  /**
   * Adjusts the scale of the popover button icon.
   *
   * @default 'm'
   */
  accessor popoverButtonIconScale: "l" | "m" | "s";
  /**
   * Adjusts the overlay-positioning of the popover.
   *
   * @default 'absolute'
   */
  accessor popoverPositioning: "absolute" | "fixed";
  /**
   * Remove the pointer and set the vertical offset to 0 for the popover.
   *
   * @default false
   */
  accessor removePopoverOffset: boolean;
  /**
   * Adjusts the scale of the component.
   *
   * @default 's'
   */
  accessor scale: "l" | "m" | "s";
  /**
   * Renders share button with 'inverse' | 'neutral' | 'brand option
   *
   * @default 'neutral'
   */
  accessor shareButtonKind: "inverse" | "neutral" | "brand";
  /**
   * Adjust scale of popover button
   *
   * @default 'm'
   */
  accessor shareButtonScale: "l" | "m" | "s";
  /**
   * Text to display in share button, not valid when shareButtonType = 'action'
   *
   * @default ''
   */
  accessor shareButtonText: string;
  /**
   * Renders tool in popover mode with a trigger button or action
   *
   * @default 'button'
   */
  accessor shareButtonType: "action" | "button";
  /**
   * Display the share icons in a vertical or horizontal layout.
   *
   * @default 'vertical'
   */
  accessor shareIconsLayout: "horizontal" | "vertical";
  /**
   * Additional text to display when sharing to a social option
   *
   * @default ''
   */
  accessor shareText: string;
  /** Generated share URL. Use this property to append custom URL parameters if needed. */
  accessor shareUrl: string;
  /**
   * Shortens generated URL.
   *
   * @default true
   */
  accessor shortenShareUrl: boolean;
  /**
   * Show/hide social media icons.
   *
   * @default true
   */
  accessor socialMedia: boolean;
  /**
   * Solution ID for telemetry tracking
   *
   * @default ''
   */
  accessor solutionId: string;
  /**
   * Solution title for telemetry tracking
   *
   * @default ''
   */
  accessor solutionTitle: string;
  /**
   * Solution version for telemetry tracking
   *
   * @default ''
   */
  accessor solutionVersion: string;
  /**
   * Provides an alternate to the success.url message 'App URL copied to clipboard.'
   *
   * @default ''
   */
  accessor successMessage: string;
}