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

export abstract class CreateRelatedFeature extends LitElement {
  /**
   * Contains the translations for this component.
   * All UI strings should be defined here.
   *
   * @internal
   */
  protected _translations: { provideDetailsMsg: string; } & T9nMeta<{ provideDetailsMsg: string; }>;
  /**
   * boolean: Set this to true when have a custom submit button in the app.
   * This will hide the header and footer elements of the editor and user needs to execute the submit method manually.
   *
   * @default false
   */
  accessor customizeSubmit: boolean | undefined;
  /**
   * When true the snapping options will be exposed
   *
   * @default false
   */
  accessor enableSnapping: boolean;
  /** esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */
  accessor mapView: __esri.MapView | undefined;
  /** __esri.Graphic: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html */
  accessor selectedFeature: __esri.Graphic | undefined;
  /**
   * boolean: When true the notice message should be shown
   *
   * @default true
   */
  accessor showGuidingMsg: boolean | undefined;
  /** __esri.FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html */
  accessor table: __esri.FeatureLayer | undefined;
  /** Submit the comment */
  submit(): Promise<void>;
  /** Emitted on demand when the comment submission is failed */
  readonly fail: import("@arcgis/lumina").TargetedEvent<this, Error>;
  /** Emitted on demand when form is ready */
  readonly formReady: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Emitted on demand when any action is pending or completed */
  readonly isActionPending: import("@arcgis/lumina").TargetedEvent<this, boolean>;
  /** Emitted on demand when the comment is submitted successfully */
  readonly success: import("@arcgis/lumina").TargetedEvent<this, void>;
  readonly "@eventTypes": {
    fail: CreateRelatedFeature["fail"]["detail"];
    formReady: CreateRelatedFeature["formReady"]["detail"];
    isActionPending: CreateRelatedFeature["isActionPending"]["detail"];
    success: CreateRelatedFeature["success"]["detail"];
  };
}