UNPKG

32.2 kBTypeScriptView Raw
1import { IRequestOptions, GeometryType, IGeometry, ISpatialReference, IHasZM, IExtent, IField, IFeature } from "@esri/arcgis-rest-request";
2/**
3 * The spatial relationship used to compare input geometries
4 */
5export declare type SpatialRelationship = "esriSpatialRelIntersects" | "esriSpatialRelContains" | "esriSpatialRelCrosses" | "esriSpatialRelEnvelopeIntersects" | "esriSpatialRelIndexIntersects" | "esriSpatialRelOverlaps" | "esriSpatialRelTouches" | "esriSpatialRelWithin";
6/**
7 * Base options for making requests against feature layers
8 */
9export interface IGetLayerOptions extends IRequestOptions {
10 /**
11 * Layer service url.
12 */
13 url: string;
14}
15export interface ISharedQueryOptions extends IGetLayerOptions {
16 /**
17 * A where clause for the query. Defaults to "1=1"
18 */
19 where?: string;
20 geometry?: IGeometry;
21 geometryType?: GeometryType;
22 inSR?: string | ISpatialReference;
23 spatialRel?: SpatialRelationship;
24}
25/**
26 * Add, update and delete features result Object.
27 */
28export interface IEditFeatureResult {
29 objectId: number;
30 globalId?: string;
31 success: boolean;
32 /**
33 * Error is optional and is only returned when `success` is `false`.
34 */
35 error?: {
36 code: number;
37 description: string;
38 };
39}
40/**
41 * Shared add/update attachment options for apply edits.
42 */
43interface IApplyEditsSharedAttachmentOptions {
44 /**
45 * Attachment file content type.
46 */
47 contentType: string;
48 /**
49 * Name of the file including extension.
50 */
51 name: string;
52 /**
53 * Upload id of file to be attached.
54 */
55 uploadId?: string;
56 /**
57 * Base 64 encoded data of attachment.
58 */
59 data?: string;
60}
61/**
62 * Add attachment options for apply edits.
63 */
64export interface IApplyEditsAddAttachmentOptions extends IApplyEditsSharedAttachmentOptions {
65 /**
66 * Global id of attachment (must be provided by client).
67 */
68 globalId: string;
69 /**
70 * Global id of feature to attach.
71 */
72 parentGlobalId: string;
73}
74/**
75 * Update attachment options for apply edits.
76 */
77export interface IApplyEditsUpdateAttachmentOptions extends IApplyEditsSharedAttachmentOptions {
78 /**
79 * Global id of attachment.
80 */
81 globalId: string;
82}
83/**
84 * `globalId` always returned with attachments via apply edits.
85 */
86export interface IApplyEditsAttachmentResult extends IEditFeatureResult {
87 globalId: string;
88}
89/**
90 * Apply edits result Object.
91 */
92export interface IApplyEditsResult {
93 addResults: IEditFeatureResult[];
94 updateResults: IEditFeatureResult[];
95 deleteResults: IEditFeatureResult[];
96 attachments?: {
97 addResults?: IApplyEditsAttachmentResult[];
98 updateResults?: IApplyEditsAttachmentResult[];
99 deleteResults?: IApplyEditsAttachmentResult[];
100 };
101}
102/**
103 * Common add, update, and delete features options.
104 */
105export interface ISharedEditOptions extends IGetLayerOptions {
106 /**
107 * The geodatabase version to apply the edits.
108 */
109 gdbVersion?: string;
110 /**
111 * Optional parameter specifying whether the response will report the time features were added.
112 */
113 returnEditMoment?: boolean;
114 /**
115 * Optional parameter to specify if the edits should be applied only if all submitted edits succeed.
116 */
117 rollbackOnFailure?: boolean;
118}
119/**
120 * Return the service url. If not matched, returns what was passed in
121 */
122export declare function parseServiceUrl(url: string): string;
123export interface IStatisticDefinition {
124 /**
125 * Statistical operation to perform (count, sum, min, max, avg, stddev, var, percentile_cont, percentile_disc, EnvelopeAggregate, CentroidAggregate, ConvexHullAggregate).
126 */
127 statisticType: "count" | "sum" | "min" | "max" | "avg" | "stddev" | "var" | "percentile_cont" | "percentile_disc" | "EnvelopeAggregate" | "CentroidAggregate" | "ConvexHullAggregate";
128 /**
129 * Parameters to be used along with statisticType. Currently, only applicable for percentile_cont (continuous percentile) and percentile_disc (discrete percentile).
130 */
131 statisticParameters?: {
132 value: number;
133 orderBy?: "asc" | "desc";
134 };
135 /**
136 * Field on which to perform the statistical operation.
137 */
138 onStatisticField: string;
139 /**
140 * Field name for the returned statistic field. If outStatisticFieldName is empty or missing, the server will assign one. A valid field name can only contain alphanumeric characters and an underscore. If the outStatisticFieldName is a reserved keyword of the underlying DBMS, the operation can fail. Try specifying an alternative outStatisticFieldName.
141 */
142 outStatisticFieldName?: string;
143}
144export interface ILayer {
145 /** A unique identifying string for the layer. */
146 id: any;
147 /** Layer name */
148 name?: string;
149 /** Optional string containing the item ID of the service if it's registered on ArcGIS Online or your organization's portal. */
150 itemId?: string;
151 /** Indicates the layer type */
152 layerType: string;
153 /** Integer property used to determine the maximum scale at which the layer is displayed. */
154 maxScale?: number;
155 /** Integer property used to determine the minimum scale at which the layer is displayed. */
156 minScale?: number;
157 /** The degree of transparency applied to the layer on the client side, where 0 is full transparency and 1 is no transparency. */
158 opacity?: number;
159 /** Boolean property indicating whether to display in the legend. */
160 showLegend?: boolean;
161 /** A user-friendly string title for the layer that can be used in a table of contents. */
162 title?: string;
163 /**
164 * Deprecated, use layerType instead.
165 * @deprecated
166 */
167 type?: string;
168 /** Boolean property determining whether the layer is initially visible in the web map. */
169 visibility?: boolean;
170 /** The URL to the layer. Not applicable to all layer types. */
171 url?: string;
172}
173/**
174 * Very generic structure representing the return value from the
175 * /arcgis/rest/admin/services/<service-name>/FeatureServer?f=json response
176 */
177export interface IServiceInfo extends Record<string, unknown> {
178 adminServiceInfo: {
179 name: string;
180 type: string;
181 status: string;
182 database: {
183 datasource: {
184 name: string;
185 };
186 };
187 };
188 layers: Record<string, unknown>[];
189}
190/**
191 * Individual View Source entry
192 */
193export interface IViewServiceSource {
194 name: string;
195 type: string;
196 url: string;
197 serviceItemId: string;
198}
199/**
200 * Response from the /sources end-point of a view service
201 */
202export interface IViewServiceSources {
203 currentVersion: number;
204 services: IViewServiceSource[];
205}
206/**
207 * `IFeatureServiceDefinition` can also be imported from the following packages:
208 *
209 * ```js
210 * import { IFeatureServiceDefinition } from "@esri/arcgis-rest-service-admin";
211 * import { IFeatureServiceDefinition } from "@esri/arcgis-rest-feature-service";
212 * ```
213 */
214export interface IFeatureServiceDefinition {
215 currentVersion?: number;
216 serviceDescription: string;
217 hasVersionedData: boolean;
218 supportsDisconnectedEditing: boolean;
219 supportsReturnDeleteResults: boolean;
220 /** Boolean value indicating whether data changes. True if it does not. */
221 hasStaticData?: boolean;
222 /** Numeric value indicating tbe maximum number of records that will be returned at once for a query. */
223 maxRecordCount: number;
224 /** String value indicating the output formats that are supported in a query. */
225 supportedQueryFormats: string;
226 supportsRelationshipsResource: boolean;
227 /** A comma separated list of supported capabilities, e.g. Query,Editing. */
228 capabilities: string;
229 /** String value of the layer as defined in the map service. */
230 description: string;
231 /** String value for the copyright text information for the layer. */
232 copyrightText: string;
233 advancedEditingCapabilities: {
234 [key: string]: boolean;
235 };
236 /** An object containing the WKID or WKT identifying the spatial reference of the layer's geometry. */
237 spatialReference: ISpatialReference;
238 initialExtent: IExtent;
239 fullExtent: IExtent;
240 /** Boolean value indicating whether the geometry of the features in the layer can be edited. */
241 allowGeometryUpdates: boolean;
242 units: string;
243 syncEnabled: boolean;
244 returnServiceEditsHaveSR?: boolean;
245 validationSystemLayers: {
246 validationPointErrorlayerId: number;
247 validationLineErrorlayerId: number;
248 validationPolygonErrorlayerId: number;
249 validationObjectErrortableId: number;
250 };
251 extractChangesCapabilities: {
252 supportsReturnIdsOnly: boolean;
253 supportsReturnExtentOnly: boolean;
254 supportsReturnAttachments: boolean;
255 supportsLayerQueries: boolean;
256 supportsSpatialFilter: boolean;
257 supportsReturnFeature: boolean;
258 };
259 syncCapabilities: {
260 supportsASync: boolean;
261 supportsRegisteringExistingData: boolean;
262 supportsSyncDirectionControl: boolean;
263 supportsPerLayerSync: boolean;
264 supportsPerReplicaSync: boolean;
265 supportsRollbackOnFailure: boolean;
266 supportedSyncDataOptions: number;
267 };
268 editorTrackingInfo: {
269 enableEditorTracking: boolean;
270 enableOwnershipAccessControl: boolean;
271 allowOthersToUpdate: boolean;
272 allowOthersToDelete: boolean;
273 };
274 documentInfo?: {
275 [key: string]: string;
276 };
277 layers: ILayerDefinition[];
278 tables: ITable[];
279 relationships: [
280 {
281 id: number;
282 name: string;
283 backwardPathLabel: string;
284 originLayerId: number;
285 originPrimaryKey: string;
286 forwardPathLabel: string;
287 destinationLayerId: number;
288 originForeignKey: string;
289 relationshipTableId: number;
290 destinationPrimaryKey: string;
291 destinationForeignKey: string;
292 rules: [
293 {
294 ruleID: number;
295 originSubtypeCode: number;
296 originMinimumCardinality: number;
297 originMaximumCardinality: number;
298 destinationSubtypeCode: number;
299 destinationMinimumCardinality: number;
300 destinationMaximumCardinality: number;
301 }
302 ];
303 cardinality: "esriRelCardinalityOneToOne" | "esriRelCardinalityOneToMany" | "esriRelCardinalityManyToMany";
304 attributed: boolean;
305 composite: boolean;
306 }
307 ];
308 enableZDefaults?: boolean;
309 isLocationTrackingService: boolean;
310 isLocationTrackingView: boolean;
311 zDefault?: number;
312}
313/**
314 * Root element in the web map specifying an array of table objects.
315 *
316 * `ITable` can also be imported from the following packages:
317 *
318 * ```js
319 * import { ITable } from "@esri-arcgis-rest-service-admin"
320 * ```
321 */
322export interface ITable {
323 /** Table name */
324 name?: string;
325 /** A comma-separated string listing which editing operations are allowed on an editable feature service. Available operations include: 'Create', 'Delete', 'Query', 'Update', and 'Editing'. */
326 capabilities?: string;
327 /** Object indicating the definitionEditor used as a layer's interactive filter. */
328 definitionEditor?: IDefinitionEditor;
329 /** Unique identifier for the table. */
330 id?: number;
331 /** Unique string value indicating an item registered in ArcGIS Online or your organization's portal. */
332 itemId?: string;
333 /** A layerDefinition object defining a definition expression for the table. */
334 layerDefinition?: ILayerDefinition;
335 /** An object defining the content of popup windows when you query a record and the sort option for child related records. */
336 popupInfo?: IPopupInfo;
337 /** String value for the title of the table. */
338 title?: string;
339 /** String value indicating the URL reference of the hosted table. */
340 url?: string;
341}
342export interface IDefinitionParameter {
343 /** The default value that is automatically given if nothing is provided. */
344 defaultValue?: number | string;
345 /** A string value representing the name of the field to query. */
346 fieldName?: string;
347 /** Number given to uniquely identify the specified parameter. */
348 parameterId?: any;
349 /** The field type for the specified field parameter. */
350 type?: "esriFieldTypeBlob" | "esriFieldTypeDate" | "esriFieldTypeDouble" | "esriFieldTypeGeometry" | "esriFieldTypeGlobalID" | "esriFieldTypeGUID" | "esriFieldTypeInteger" | "esriFieldTypeOID" | "esriFieldTypeRaster" | "esriFieldTypeSingle" | "esriFieldTypeSmallInteger" | "esriFieldTypeString" | "esriFieldTypeXML";
351 /** An integer value representing exact UNIX time used when defaultValue is a date string. */
352 utcValue?: number;
353}
354export interface IDefinitionInput {
355 /** A string value representing a hint for the input. */
356 hint?: string;
357 /** An array of parameter objects. */
358 parameters?: IDefinitionParameter[];
359 /** A string value representing the prompt for the input. */
360 prompt?: string;
361}
362/**
363 * The definitionEditor stores interactive filters at the same level as layerDefinition.
364 */
365export interface IDefinitionEditor {
366 /** An array of input objects. */
367 inputs?: IDefinitionInput[];
368 /** A string value representing the where clause for the interactive filter. */
369 parameterizedExpression?: string;
370}
371/**
372 * Arcade expression added to the pop-up.
373 */
374export interface IPopupExpressionInfo {
375 /** The Arcade expression. */
376 expression?: string;
377 /** Unique identifier for the expression. */
378 name?: string;
379 /** Return type of the Arcade expression, can be number or string. Defaults to string value. Number values are assumed to be double. This can be determined by the authoring client by executing the expression using a sample feature(s), although it can be corrected by the user. Knowing the returnType allows the authoring client to present fields in relevant contexts. For example, numeric fields in numeric contexts such as charts. */
380 returnType?: "number" | "string";
381 /** Title of the expression. */
382 title?: string;
383}
384/**
385 * The format object can be used with numerical or date fields to provide more detail about how values should be displayed in popup windows.
386 */
387export interface IFieldFormat {
388 /** A string used with date fields to specify how the date should appear in popup windows. */
389 dateFormat?: "shortDate" | "shortDateLE" | "longMonthDayYear" | "dayShortMonthYear" | "longDate" | "shortDateShortTime" | "shortDateLEShortTime" | "shortDateShortTime24" | "shortDateLEShortTime24" | "shortDateLongTime" | "shortDateLELongTime" | "shortDateLongTime24" | "shortDateLELongTime24" | "longMonthYear" | "shortMonthYear" | "year";
390 /**
391 * A Boolean used with numerical fields. A value of true allows the number to have a digit (or thousands) separator when the value appears in popup windows.
392 * Depending on the locale, this separator is a decimal point or a comma. A value of false means that no separator will be used.
393 */
394 digitSeparator?: boolean;
395 /**
396 * An integer used with numerical fields to specify the number of supported decimal places that should appear in popup windows. Any places beyond this value are rounded.
397 */
398 places?: number;
399}
400/**
401 * Defines how a field in the dataset participates (or does not participate) in a popup window.
402 */
403export interface IFieldInfo {
404 /** A string containing the field name as defined by the service. Anywhere that a fieldname is referenced as {field-name} in popupInfo, an Arcade expression can also be referenced as{expression/}`. */
405 fieldName?: any;
406 /** A format object used with numerical or date fields to provide more detail about how the value should be displayed in a web map popup window. */
407 format?: IFieldFormat;
408 /** A Boolean determining whether users can edit this field. Not applicable to Arcade expressions. */
409 isEditable?: boolean;
410 /** A string containing the field alias. This can be overridden by the web map author. Not applicable to Arcade expressions as title is used instead. */
411 label?: string;
412 /** A string determining what type of input box editors see when editing the field. Applies only to string fields. Not applicable to Arcade expressions. */
413 stringFieldOption?: "textbox" | "textarea" | "richtext";
414 /** A string providing an editing hint for editors of the field. Not applicable to Arcade expressions. */
415 tooltip?: string;
416 /** A Boolean determining whether the field is visible in the popup window. */
417 visible?: boolean;
418}
419/**
420 * Defines the look and feel of popup windows when a user clicks or queries a feature.
421 */
422export interface IPopupInfo {
423 /** A string that appears in the body of the popup window as a description. It is also possible to specify the description as HTML-formatted content. */
424 description?: string | null;
425 /** List of Arcade expressions added to the pop-up. */
426 expressionInfos?: IPopupExpressionInfo[];
427 /** Array of fieldInfo information properties. This information is provided by the service layer definition. When the description uses name/value pairs, the order of the array is how the fields display in the editable Map Viewer popup and the resulting popup. It is also possible to specify HTML-formatted content. */
428 fieldInfos?: IFieldInfo[];
429 /** Additional options that can be defined for the popup layer. */
430 layerOptions?: {
431 /** Indicates whether or not the NoData records should be displayed. */
432 showNoDataRecords: boolean;
433 };
434 /** Array of various mediaInfo to display. Can be of type image, piechart, barchart, columnchart, or linechart. The order given is the order in which is displays. */
435 mediaInfos?: IMediaInfo[];
436 /** An array of popupElement objects that represent an ordered list of popup elements. */
437 popupElements?: IPopupElement[];
438 /** Indicates whether to enable related records if they exist on a layer. */
439 relatedRecordsInfo?: IRelatedRecordsInfo;
440 /** Indicates whether attachments will be loaded for feature layers that have attachments. */
441 showAttachments?: boolean;
442 /** A string that appears at the top of the popup window as a title. */
443 title?: string;
444}
445/**
446 * The sort in the popupInfo for the parent feature. This impacts the sorting order for the returned child records.
447 */
448export interface IRelatedRecordsInfo {
449 /** Array of orderByFields objects indicating the field display order for the related records and whether they should be sorted in ascending 'asc' or descending 'desc' order. */
450 orderByFields?: IOrderByField[];
451 /** Required boolean value indicating whether to display related records. If true, client should let the user navigate to the related records. Defaults to true if the layer participates in a relationship AND the related layer/table has already been added to the map (either as an operationalLayer or as a table). */
452 showRelatedRecords: boolean;
453}
454/**
455 * Object indicating the field display order for the related records and whether they should be sorted in ascending or descending order.
456 */
457export interface IOrderByField {
458 /** The attribute value of the field selected that will drive the sorting of related records. */
459 field?: string;
460 /** Set the ascending or descending sort order of the returned related records. */
461 order?: "asc" | "desc";
462}
463/**
464 * The value object contains information for popup windows about how images should be retrieved or charts constructed.
465 */
466export interface IMediaInfoValue {
467 /** Used with charts. An array of strings, with each string containing the name of a field to display in the chart. */
468 fields?: string[];
469 /** Used with images. A string containing a URL to be launched in a browser when a user clicks the image. */
470 linkURL?: string;
471 /** Used with charts. An optional string containing the name of a field. The values of all fields in the chart will be normalized (divided) by the value of this field. */
472 normalizeField?: string;
473 /** Used with images. A string containing the URL to the image. */
474 sourceURL?: string;
475 /** String value indicating the tooltip for a chart specified from another field. This field is needed when related records are not sued. It is used for showing tooltips from another field in the same layer or related layer/table. */
476 tooltipField?: string;
477}
478/**
479 * Defines an image or a chart to be displayed in a popup window.
480 */
481export interface IMediaInfo {
482 /** A string caption describing the media. */
483 caption?: any;
484 /** Refresh interval of the layer in minutes. Non-zero value indicates automatic layer refresh at the specified interval. Value of 0 indicates auto refresh is not enabled. If the property does not exist, it's equivalent to having a value of 0. Only applicable when type is set to image. */
485 refreshInterval?: any;
486 /** A string title for the media. */
487 title?: string | null;
488 /** A string defining the type of media. */
489 type?: "image" | "barchart" | "columnchart" | "linechart" | "piechart";
490 /** A value object containing information about how the image should be retrieved or how the chart should be constructed. */
491 value?: IMediaInfoValue | null;
492}
493/**
494 * Popup elements allow users to author popups, using multiple elements such as tabular views, string description, media (charts and images), and attachments of the attributes
495 * and control the order in which they appear. Specifically, popupElements do the following:
496 * 1) provide the ability to explicitly add a field/ value table in addition to a description,
497 * 2) allow adding multiple description elements, and
498 * 3) allow a user to author and consume elements of a popup in the order of their choosing.
499 */
500export interface IPopupElement {
501 /**
502 * This property applies to elements of type attachments. A string value indicating how to display the attachment.
503 * Possible values are, preview, and list. If list is specified, attachments show as links.
504 */
505 displayType?: "preview" | "list";
506 /**
507 * This property applies to elements of type fields. It is an array of popupInfo.fieldInfo objects representing a field/value pair displayed as a table within the popupElement.
508 * If the fieldInfos property is not provided, the popupElement will display whatever is specified directly in the popupInfo.fieldInfos property.
509 */
510 fieldInfos?: IFieldInfo[];
511 /**
512 * This property applies to elements of type media. An array of popupInfo.mediaInfo objects representing an image or chart for display.
513 * If no mediaInfos property is provided, the popupElement will display whatever is specified in the popupInfo.mediaInfo property.
514 */
515 mediaInfos?: IMediaInfo[];
516 /**
517 * This property applies to elements of type text. This is string value indicating the text to be displayed within the popupElement.
518 * If no text property is provided, the popupElement will display whatever is specified in the popupInfo.description property.
519 */
520 text?: string;
521 /** String value indicating which elements to use. */
522 type?: "text" | "fields" | "media" | "attachments";
523}
524export interface IEditingInfo {
525 /** date of last edit to the layer */
526 lastEditDate?: number;
527}
528export declare type FeatureEditTool = "esriFeatureEditToolAutoCompletePolygon" | "esriFeatureEditToolPolygon" | "esriFeatureEditToolTriangle" | "esriFeatureEditToolRectangle" | "esriFeatureEditToolLeftArrow" | "esriFeatureEditToolRightArrow" | "esriFeatureEditToolEllipse" | "esriFeatureEditToolUpArrow" | "esriFeatureEditToolDownArrow" | "esriFeatureEditToolCircle" | "esriFeatureEditToolFreehand" | "esriFeatureEditToolLine" | "esriFeatureEditToolNone" | "esriFeatureEditToolText" | "esriFeatureEditToolPoint";
529/**
530 * Templates describe features that can be created in a layer. They are generally used with feature collections and editable web-based CSV layers.
531 * Templates are not used with ArcGIS feature services as these already have templates defined in the service. They are also defined as properties
532 * of the layer definition when there are no defined types. Otherwise, templates are defined as properties of the types.
533 */
534export interface ITemplate {
535 /** A string value containing a detailed description of the template. */
536 description?: any;
537 /**
538 * An optional string that can define a client-side drawing tool to be used with this feature. For example, map notes used by the Online Map Viewer use this to represent the viewer's different drawing tools.
539 */
540 drawingTool?: FeatureEditTool;
541 /** A string containing a user-friendly name for the template. */
542 name?: string;
543 /** A feature object representing a prototypical feature for the template. */
544 prototype?: IFeature;
545}
546/**
547 * `ILayerDefinition` can also be imported from the following packages:
548 *
549 * ```js
550 * import { ILayerDefinition } from "@esri/arcgis-rest-service-admin";
551 * import { ILayerDefinition } from "@esri/arcgis-rest-feature-service";
552 * ```
553 */
554export interface ILayerDefinition extends IHasZM {
555 /** Boolean value indicating whether the geometry of the features in the layer can be edited. */
556 allowGeometryUpdates?: boolean;
557 /** A comma separated list of supported capabilities, e.g. Query,Editing. */
558 capabilities?: string;
559 /** String value for the copyright text information for the layer. */
560 copyrightText?: string;
561 /** Numeric value indicating the server version of the layer. */
562 currentVersion?: number;
563 /** Boolean value indicating whether the layer's visibility is turned on. */
564 defaultVisibility?: boolean;
565 /** Stores interactive filters. */
566 definitionEditor?: IDefinitionEditor;
567 /** SQL-based definition expression string that narrows the data to be displayed in the layer. */
568 definitionExpression?: string;
569 /** String value of the layer as defined in the map service. */
570 description?: string;
571 /** A string value that summarizes the feature. */
572 displayField?: string;
573 /** Contains drawing, labeling, and transparency information. */
574 drawingInfo?: any;
575 /** An object defining the rectangular area. */
576 extent?: IExtent | null;
577 /** An object defining the editing info (last edit date). */
578 editingInfo?: IEditingInfo;
579 /** Feature reductions declutter the screen by hiding features that would otherwise intersect with other features on screen. */
580 featureReduction?: any;
581 /** An array of field objects containing information about the attribute fields for the feature collection or layer. */
582 fields?: IField[];
583 /** A string defining the type of geometry. Possible geometry types are: esriGeometryPoint, esriGeometryMultipoint, esriGeometryPolyline, esriGeometryPolygon, and esriGeometryEnvelope. */
584 geometryType?: GeometryType;
585 /** The unique identifier for a feature or table row within a geodatabase. */
586 globalIdField?: string;
587 /** Indicates whether attachments should be loaded for the layer. */
588 hasAttachments?: boolean;
589 /** Boolean value indicating whether data changes. True if it does not. */
590 hasStaticData?: boolean;
591 /** String value indicating the HTML popup type. */
592 htmlPopupType?: "esriServerHTMLPopupTypeNone" | "esriServerHTMLPopupTypeAsURL" | "esriServerHTMLPopupTypeAsHTMLText";
593 /** The identifier assigned to the layer. */
594 id?: number;
595 /** Boolean value indicating whether the data is versioned. */
596 isDataVersioned?: boolean;
597 /** Numeric value indicating tbe maximum number of records that will be returned at once for a query. */
598 maxRecordCount?: number;
599 /** Represents the maximum scale at which the layer definition will be applied. This does not apply to layers of type: ArcGISMapServiceLayer, ImageServiceVectorLayer or ImageServiceLayer. */
600 maxScale?: number;
601 /** Represents the minimum scale at which the layer definition will be applied. This does not apply to layers of type: ArcGISMapServiceLayer, ImageServiceVectorLayer or ImageServiceLayer. */
602 minScale?: number;
603 /** Contains a unique name for the layer that can be displayed in a legend. */
604 name?: string;
605 /** Indicates the name of the object ID field in the dataset. */
606 objectIdField?: string;
607 /** Dictates whether a client can support having an end user modify symbols on individual features. */
608 overrideSymbols?: boolean;
609 /** Indicates range information */
610 rangeInfos?: any;
611 /** An object indicating the layerDefinition's layer source. */
612 source?: any;
613 /** An object containing the WKID or WKT identifying the spatial reference of the layer's geometry. */
614 spatialReference?: ISpatialReference;
615 /** String value indicating the output formats that are supported in a query. */
616 supportedQueryFormats?: string;
617 /** Boolean value indicating whether the layer supports orderByFields in a query operation. */
618 supportsAdvancedQueries?: boolean;
619 /** Boolean value indicating whether the layer supports uploading attachments with the Uploads operation. This can then be used in the Add Attachment and Update Attachment operations. */
620 supportsAttachmentsByUploadId?: boolean;
621 /** Boolean value indicating whether the layer supports the Calculate REST operation when updating features. */
622 supportsCalculate?: boolean;
623 /** Boolean value indicating whether the layer supports rolling back edits made on a feature layer if some of the edits fail. */
624 supportsRollbackOnFailureParameter?: boolean;
625 /** Boolean value indicating whether feature layer query operations support statistical functions. */
626 supportsStatistics?: boolean;
627 /** Boolean value indicating whether the validateSQL operation is supported across a feature service layer. */
628 supportsValidateSql?: boolean;
629 /** A property of the layer definition when there are no types defined; otherwise, templates are defined as properties of the types. */
630 templates?: ITemplate[];
631 /** The time info metadata of the layer. May be set for feature layers inside a feature collection item. */
632 timeInfo?: any;
633 /** Indicates whether the layerDefinition applies to a Feature Layer or a Table. */
634 type?: "Feature Layer" | "Table";
635 /** Contains the name of the field holding the type ID for the features. */
636 typeIdField?: string;
637 /** Contains information about an attribute field. */
638 types?: any;
639 /** String value indicating the attribute field that is used to control the visibility of a feature.
640 * If applicable, when rendering a feature the client should use this field to control visibility.
641 * The field's values are 0 = do not display, 1 = display.
642 */
643 visibilityField?: string;
644 relationships?: any[];
645 editFieldsInfo?: {
646 creationDateField?: string;
647 creatorField?: string;
648 editDateField?: string;
649 editorField?: string;
650 };
651 parentLayerId?: number;
652 ownershipBasedAccessControlForFeatures?: boolean;
653 syncCanReturnChanges?: boolean;
654 archivingInfo?: {
655 supportsQueryWithHistoricMoment?: boolean;
656 startArchivingMoment?: number;
657 };
658 supportsValidateSQL?: boolean;
659 advancedQueryCapabilities?: {
660 supportsPagination?: boolean;
661 supportsTrueCurve?: boolean;
662 supportsQueryWithDistance?: boolean;
663 supportsReturningQueryExtent?: boolean;
664 supportsStatistics?: boolean;
665 supportsOrderBy?: boolean;
666 supportsDistinct?: boolean;
667 supportsSqlExpression?: boolean;
668 supportsPercentileStatistics?: boolean;
669 };
670 allowTrueCurvesUpdates?: boolean;
671 onlyAllowTrueCurveUpdatesByTrueCurveClients?: boolean;
672 supportsApplyEditsWithGlobalIds?: boolean;
673 subtypeField?: string;
674 indexes?: any[];
675 dateFieldsTimeReference?: {
676 timeZone?: string;
677 respectsDaylightSaving?: boolean;
678 };
679 useStandardizedQueries?: boolean;
680}
681export {};