///
import type MapView from "@arcgis/core/views/MapView.js";
import type { IImageExtraction, ISearchConfiguration, ITextExtraction } from "../../utils/interfaces.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { ArcgisEditor } from "@arcgis/map-components/components/arcgis-editor/customElement";
import type { T9nMeta } from "@arcgis/lumina/controllers";
export abstract class CreateFeature extends LitElement {
/**
* Contains the translations for this component.
* All UI strings should be defined here.
*
* @internal
*/
protected _translations: {
chooseCategoryMsg: string;
provideDetailsMsg: string;
provideLocationMsg: string;
editLocationLabel: string;
reportOutsideAreaMessage: string;
enableFeatureTemplatesMessage: string;
usePhoto: string;
aiAssistantDescription: string;
useDescription: string;
aiTextAssistantDescription: string;
fillOutManually: string;
startBlank: string;
next: string;
cancel: string;
createReportHeading: string;
aiAssistedReport: string;
manualReport: string;
aiAssistantProcessingHint: string;
aiTextProcessingHint: string;
imageUploadLimitHint: string;
replaceImage: string;
analyzingImage: string;
description: string;
messageInputHint: string;
descriptionRequiredHint: string;
analyzingText: string;
formReviewMsg: string;
textReviewMsg: string;
skip: string;
photo: string;
error: string;
imageExtractionError: string;
imageExtractionPartialError: string;
textExtractionError: string;
textExtractionPartialError: string;
} & T9nMeta<{
chooseCategoryMsg: string;
provideDetailsMsg: string;
provideLocationMsg: string;
editLocationLabel: string;
reportOutsideAreaMessage: string;
enableFeatureTemplatesMessage: string;
usePhoto: string;
aiAssistantDescription: string;
useDescription: string;
aiTextAssistantDescription: string;
fillOutManually: string;
startBlank: string;
next: string;
cancel: string;
createReportHeading: string;
aiAssistedReport: string;
manualReport: string;
aiAssistantProcessingHint: string;
aiTextProcessingHint: string;
imageUploadLimitHint: string;
replaceImage: string;
analyzingImage: string;
description: string;
messageInputHint: string;
descriptionRequiredHint: string;
analyzingText: string;
formReviewMsg: string;
textReviewMsg: string;
skip: string;
photo: string;
error: string;
imageExtractionError: string;
imageExtractionPartialError: string;
textExtractionError: string;
textExtractionPartialError: string;
}>;
/** array: Configured AI image extraction field and prompt for the selected LayerId */
accessor aiImageExtraction: IImageExtraction[] | undefined;
/** array: Configured AI text extraction field and prompt for the selected LayerId */
accessor aiTextExtraction: ITextExtraction[] | undefined;
/**
* boolean: When true user can create multiple features
*
* @default false
*/
accessor allowMultipleCreation: boolean;
/** string: The name of Instant Apps application (e.g., "reporter", "manager") used in the request source header */
accessor appName: string | undefined;
/**
* 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;
/**
* boolean: When true message analysis attempts to extract and geocode location text
*
* @default false
*/
accessor enableMessageLocation: boolean | undefined;
/**
* boolean: When true photo get location from the photo selected for AI image Extraction
*
* @default false
*/
accessor enablePhotoLocation: boolean | undefined;
/**
* boolean: When true the Search box will be displayed
*
* @default false
*/
accessor enableSearch: boolean | undefined;
/**
* When true the snapping options will be exposed
*
* @default false
*/
accessor enableSnapping: boolean;
/**
* string: selected floor level
*
* @default ''
*/
accessor floorLevel: string;
/** string: selected floor level */
accessor formElements: any;
/**
* boolean: When true the application will be in mobile mode, controls the mobile or desktop view
*
* @default false
*/
accessor isMobile: boolean;
/** esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */
accessor mapView: MapView | undefined;
/**
* boolean: When true clicking on a feature on the map will display a popup
*
* @default false
*/
accessor popupEnabled: boolean;
/**
* boolean: When true reporting area layer should be honored if it exists
*
* @default false
*/
accessor reportingArea: boolean;
/**
* string: polygon layer for the reporting feature
*
* @default ''
*/
accessor reportingAreaLayer: string | undefined;
/**
* string: Message to be displayed when feature is outside the reportingAreaLayer
*
* @default ''
*/
accessor reportingAreaMessage: string;
/** ISearchConfiguration: Configuration details for the Search widget */
accessor searchConfiguration: ISearchConfiguration | undefined;
/**
* string: Layer id of the feature layer in which the new feature is to be created
*
* @default ''
*/
accessor selectedLayerId: string;
/**
* boolean: When true the notice message with the current state should be shown
*
* @default true
*/
accessor showGuidingMsg: boolean | undefined;
/**
* boolean: When true the layer visibility message will be shown
*
* @default false
*/
accessor showLayerVisibilityMsg: boolean | undefined;
/**
* boolean: When true Editor's sketch widgets will be displayed
*
* @default false
*/
accessor showSketchWidgets: boolean;
/**
* string: Text to be displayed that will allow user to know they can submit new reports
*
* @default ''
*/
accessor submitNewReportsMessage: string;
/**
* boolean: When true the map should shown in the editor component in mobile mode (while drawing graphic)
*
* @default false
*/
accessor updateMapPosition: boolean;
/**
* Refreshes the editor state, optionally updating the floor level.
*
* @param floorLevel - (Optional) The floor level to set. If provided, the editor updates to this floor level.
* @returns A promise that resolves when the refresh operation is complete.
*/
refresh(floorLevel?: string): Promise;
/** Shows feature form */
showForm(): Promise;
/**
* Submit the created feature
*
* @returns Promise that resolves when the operation is complete
*/
submit(): Promise;
/**
* Emitted on demand when features are being created
* The number of features being created is passed as an argument.
*/
readonly activeFeatureCountChange: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the create feature component is closed */
readonly createFeatureEditorClosed: import("@arcgis/lumina").TargetedEvent;
/**
* Emitted once the editor for creating feature is initialized and ready to use
* The ArcgisEditor instance is passed as an argument.
*/
readonly createFeatureEditorInitialized: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when drawing is completed */
readonly drawComplete: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when editing attachments */
readonly editingAttachment: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when in editing mode */
readonly editingLocation: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the feature creation is failed */
readonly fail: import("@arcgis/lumina").TargetedEvent;
/** Emitted on switched form mobile to desktop or vice versa */
readonly modeChanged: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when editor panel changes */
readonly progressStatus: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the feature is created successfully */
readonly success: import("@arcgis/lumina").TargetedEvent;
readonly "@eventTypes": {
activeFeatureCountChange: CreateFeature["activeFeatureCountChange"]["detail"];
createFeatureEditorClosed: CreateFeature["createFeatureEditorClosed"]["detail"];
createFeatureEditorInitialized: CreateFeature["createFeatureEditorInitialized"]["detail"];
drawComplete: CreateFeature["drawComplete"]["detail"];
editingAttachment: CreateFeature["editingAttachment"]["detail"];
editingLocation: CreateFeature["editingLocation"]["detail"];
fail: CreateFeature["fail"]["detail"];
modeChanged: CreateFeature["modeChanged"]["detail"];
progressStatus: CreateFeature["progressStatus"]["detail"];
success: CreateFeature["success"]["detail"];
};
}