import type { FeatureJson } from "./FeatureJson.js";
/**
 * Templates describe features that can be created in a layer. Templates are
 * used with map notes, other feature collections, and editable web-based CSV
 * layers. They are not used with ArcGIS feature services, which already have
 * feature templates defined in the service.
 *
 * Templates are defined as a property of the layer definition when there are no
 * types defined; otherwise, templates are defined as properties of the types.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/template/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/template/}.
 */
export interface TemplateJson {
    /**
     * A detailed description of the template.
     */
    description?: string | null;
    /**
     * An optional string that can define a client-side drawing tool to be used
     * with this feature. See the web map specification for more details.
     */
    drawingTool?: "esriFeatureEditToolCircle" | "esriFeatureEditToolDownArrow" | "esriFeatureEditToolEllipse" | "esriFeatureEditToolFreehand" | "esriFeatureEditToolLeftArrow" | "esriFeatureEditToolLine" | "esriFeatureEditToolPoint" | "esriFeatureEditToolPolygon" | "esriFeatureEditToolRectangle" | "esriFeatureEditToolRightArrow" | "esriFeatureEditToolText" | "esriFeatureEditToolTriangle" | "esriFeatureEditToolUpArrow" | null;
    /**
     * A string containing a user-friendly name for the template. This name
     * could appear on a menu of feature choices displayed in the client editing
     * environment.
     */
    name?: string | null;
    /**
     * A feature object representing a prototypical feature for the template.
     */
    prototype?: FeatureJson | null;
}
