import { FeatureLayerJSON, FeatureServiceAdminJSON, FeatureServiceJSON, IItem, IUser, ValidationResult } from '../../types'; import { FeatureLayerItemData, ImageryLayerItemData, WebmapData, WebmapLayerDataByItemId } from '../../types/item-data'; type ValidateOptions = { /** * Custom patterns for location information. */ customPatternsForLocationInfo?: string[]; /** * Custom patterns for data vintage information. */ customPatternsForDataVintageInfo?: string[]; /** * Custom patterns for source information. */ customPatternsForSourceInfo?: string[]; /** * Custom patterns for time information. */ customPatternsForTopicInfo?: string[]; /** * The dimension of the largest thumbnail * that we can retrieve from ArcGIS Online. */ thumbnailDimension?: { width: number; height: number; }; /** * An array of FeatureLayerJSON objects representing the feature layers associated with the Feature Service item. * Used for validating field value types, aliases, and descriptions within those layers. */ featureLayers?: FeatureLayerJSON[]; /** * The JSON represents the administrative feature service resource that maintains a set of operations that manage the state and contents of the service. */ featureServiceAdminJSON?: FeatureServiceAdminJSON; /** * The JSON represents the root resource of the feature service, providing basic information about the service. * If the feature service admin JSON is not provided, this can be used for certain validations like checking initial and full extent of the service. * If the feature service admin JSON is provided, this can be omitted as the admin JSON contains all the necessary information. */ featureServiceRootJSON?: FeatureServiceJSON; /** * Represents the web map data structure in JSON format. * The web map data lists the basemap, operational layers, and other properties of the web map. * * @see https://developers.arcgis.com/web-map-specification/objects/webmap/ */ webmapData?: WebmapData; /** * Array of items representing the layers in the web map. */ webmapLayerItems?: IItem[]; /** * Web map layer data by item ID for validation of web map layer popup configuration and other related rules. The key is the item ID and the value is the item data returned from the REST API. */ webmapLayerDataByItemId?: WebmapLayerDataByItemId; /** * Feature layer item data for validation of feature layer popup configuration and other related rules. */ featureLayerItemData?: FeatureLayerItemData; /** * Imagery layer item data for validation of imagery layer popup configuration and other related rules. */ imageryLayerItemData?: ImageryLayerItemData; /** * If true, advisories will be checked and included in the validation result. Advisories are checks that do not directly impact the score, * but provide important information about potential issues or improvements for the item. * * Advisories can include checks for feature service CDN settings, export data settings, field indexes, and extents, among others. */ shouldCheckAdvisories?: boolean; }; /** * Validates an ArcGIS item and user profile against Living Atlas criteria. * * @param item - The ArcGIS item to validate * @param userProfile - The user profile associated with the item * @param options - Optional validation configuration * @param options.customPatternsForLocationInfo - Custom patterns to check for location information * @param options.customPatternsForDataVintageInfo - Custom patterns to check for data vintage information * @param options.customPatternsForSourceInfo - Custom patterns to check for source information * @param options.customPatternsForTopicInfo - Custom patterns to check for topic information * @param options.thumbnailDimension - Expected thumbnail dimensions * @param options.featureLayers - An array of FeatureLayerJSON objects for feature service field validations * @param options.featureServiceAdminJSON - The admin JSON of the Feature Service * @param options.featureServiceRootJSON - The root JSON of the Feature Service (optional if admin JSON is provided) * @param options.webmapData - The web map data structure in JSON format for validating web map layers * @param options.webmapLayerItems - An array of items representing the layers in the web map * @param options.webmapLayerDataByItemId - Web map layer data by item ID for validation of web map layer popup configuration and other related rules * @param options.featureLayerItemData - Feature layer item data for validation of feature layer popup configuration and other related rules * @param options.imageryLayerItemData - Imagery layer item data for validation of imagery layer popup configuration and other related rules * @param options.mapServiceLayerItemData - Map service layer item data for validation of map service layer popup configuration and other related rules * @param options.shouldCheckAdvisories - If true, advisories will be checked and included in the validation result * @returns A ValidationResult object containing detailed validation results and an overall score * * The validation checks multiple aspects of the item including: * - Access settings * - Access information * - Description * - License information * - Summary/snippet * - SSL configuration * - Tags * - Thumbnail * - Title * - Deprecation status * - Delete protection * - Searchability of title and summary * - Feature service field aliases, value types, and descriptions * - Item extent * - Web map layers * * It also validates user profile aspects: * - Profile description * - Full name * - Profile thumbnail * * The result includes a total score and whether the item meets criteria for nomination. */ export declare const validate: (item: IItem, userProfile: IUser, { customPatternsForLocationInfo, customPatternsForDataVintageInfo, customPatternsForSourceInfo, customPatternsForTopicInfo, thumbnailDimension, featureLayers, featureServiceAdminJSON, featureServiceRootJSON, webmapData, webmapLayerItems, webmapLayerDataByItemId, featureLayerItemData, imageryLayerItemData, shouldCheckAdvisories, }?: ValidateOptions) => ValidationResult; export {};