@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
668 lines (663 loc) • 32.5 kB
TypeScript
import type Graphic from "../../Graphic.js";
import type PopupTemplate from "../../PopupTemplate.js";
import type Collection from "../../core/Collection.js";
import type Point from "../../geometry/Point.js";
import type Portal from "../../portal/Portal.js";
import type { EventedAccessor } from "../../core/Evented.js";
import type { AbortOptions } from "../../core/promiseUtils.js";
import type { MapViewOrSceneView } from "../../views/MapViewOrSceneView.js";
import type { SearchItem, SearchResult, SuggestResult, SupportedSearchSource, SearchResponse, SuggestResponse, SearchResults, SuggestResults, SearchDefaultSymbols, SourcesHandler } from "./types.js";
import type { GoTo, GoToProperties } from "../support/GoTo.js";
import type { PopupTemplateProperties } from "../../PopupTemplate.js";
import type { PortalProperties } from "../../portal/Portal.js";
import type { LayerSearchSourceProperties } from "./LayerSearchSource.js";
import type { LocatorSearchSourceProperties } from "./LocatorSearchSource.js";
import type { ReadonlyArrayOrCollection } from "../../core/Collection.js";
export interface SearchViewModelProperties extends GoToProperties, Partial<Pick<SearchViewModel, "allPlaceholder" | "autoNavigate" | "autoSelect" | "defaultSymbols" | "includeDefaultSources" | "locationEnabled" | "maxInputLength" | "maxResults" | "maxSuggestions" | "messages" | "minSuggestCharacters" | "popupEnabled" | "resultCount" | "resultGraphicEnabled" | "searchAllEnabled" | "suggestionCount" | "suggestionDelay" | "suggestionsEnabled" | "view">> {
/**
* The selected source's index. This value is `-1` when all sources are selected.
*
* @default 0
*/
activeSourceIndex?: number | null;
/**
* The default popupTemplate.
*
* @since 4.32
*/
defaultPopupTemplate?: PopupTemplateProperties | null;
/**
* A customized [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) for the selected feature.
* Note that any [templates](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/)
* defined on [allSources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#allSources) take precedence over those defined directly on the template.
*/
popupTemplate?: PopupTemplateProperties | null;
/**
* It is possible to search a specified portal instance's [locator services](https://enterprise.arcgis.com/en/portal/latest/administer/windows/configure-portal-to-geocode-addresses.htm)
* Use this property to set this [ArcGIS Portal](https://enterprise.arcgis.com/en/portal/) instance to search.
*
* @since 4.8
*/
portal?: PortalProperties | null;
/** The value of the search box input text string. */
searchTerm?: string | null;
/**
* Search may be used to search features in a
* [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) or [table](https://developers.arcgis.com/javascript/latest/references/core/webdoc/applicationProperties/SearchTable/),
* or geocode locations with a [locator](https://developers.arcgis.com/javascript/latest/references/core/rest/locator/). The `sources` property defines the sources from which
* to search for the [view](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#view) specified by the Search instance. There are two types of sources:
*
* * [LayerSearchSource](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/LayerSearchSource/)
* * [LocatorSearchSource](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/LocatorSearchSource/)
*
* Any combination of these sources may be used
* together in the same instance of Search.
*
* @example
* // Default sources[] when sources is not specified
* [
* {
* url: "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer",
* singleLineFieldName: "SingleLine",
* outFields: ["Addr_type"],
* name: "ArcGIS World Geocoding Service",
* placeholder: "Adresse",
* resultSymbol: {
* type: "picture-marker", // autocasts as new PictureMarkerSymbol()
* url: this.basePath + "/images/search/search-symbol-32.png",
* size: 24,
* width: 24,
* height: 24,
* xoffset: 0,
* yoffset: 0
* }
* }
* ]
* @example
* // Example of multiple sources[]
* let sources = [
* {
* url: "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer",
* singleLineFieldName: "SingleLine",
* name: "Custom Geocoding Service",
* placeholder: "Search Geocoder",
* maxResults: 3,
* maxSuggestions: 6,
* suggestionsEnabled: false,
* minSuggestCharacters: 0
* }, {
* layer: new FeatureLayer({
* url: "https://services.arcgis.com/DO4gTjwJVIJ7O9Ca/arcgis/rest/services/GeoForm_Survey_v11_live/FeatureServer/0",
* outFields: ["*"]
* }),
* searchFields: ["Email", "URL"],
* displayField: "Email",
* exactMatch: false,
* outFields: ["*"],
* name: "Point FS",
* placeholder: "example: esri",
* maxResults: 6,
* maxSuggestions: 6,
* suggestionsEnabled: true,
* minSuggestCharacters: 0
* },
* {
* layer: new FeatureLayer({
* outFields: ["*"]
* });
* placeholder: "esri",
* name: "A FeatureLayer",
* prefix: "",
* suffix: "",
* maxResults: 1,
* maxSuggestions: 6,
* exactMatch: false,
* searchFields: [], // defaults to FeatureLayer.displayField
* displayField: "", // defaults to FeatureLayer.displayField
* minSuggestCharacters: 0
* }
* ];
* @example
* let sources = [{ ... }, { ... }, { ... }]; // array of sources
* searchViewModel.sources = sources;
*
* // Add to source(s)
* searchViewModel.sources.push({ ... }); // new source
*/
sources?: ReadonlyArrayOrCollection<(LocatorSearchSourceProperties | LayerSearchSourceProperties)>;
}
export type SearchViewModelState = "disabled" | "ready" | "searching" | "loading";
export interface SearchViewModelEvents {
/**
* Fires when the [Search.search()](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/#search) method starts.
*
* @example
* const searchWidget = new Search();
*
* searchWidget.on("search-start", function(event){
* console.log("Search started.");
* });
*/
"search-start": void;
/**
* Fires when the [Search.search()](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/#search) method is called and returns its results.
*
* @example
* const searchWidget = new Search();
*
* searchWidget.on("search-complete", function(event){
* // The results are stored in the event Object[]
* console.log("Results of the search: ", event);
* });
*/
"search-complete": SearchResponse;
/**
* Fires when a search result is selected.
*
* @example
* const searchWidget = new Search();
*
* searchWidget.on("select-result", function(event){
* console.log("The selected search result: ", event);
* });
*/
"select-result": SearchViewModelSelectResultEvent;
/**
* Fires when the [Search.suggest()](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/#suggest) method starts.
*
* @example
* const searchWidget = new Search();
*
* searchWidget.on("suggest-start", function(event){
* console.log("suggest-start", event);
* });
*/
"suggest-start": { searchTerm: string; };
/**
* Fires when the [Search.suggest()](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/#suggest) method is called and returns its results.
*
* @example
* const searchWidget = new Search();
*
* searchWidget.on("suggest-complete", function(event){
* // The results are stored in the event Object[]
* console.log("Results of suggest: ", event);
* });
*/
"suggest-complete": SuggestResponse | null;
/**
* Fires when a result is cleared from the input box or a new result is selected.
*
* @example
* const searchWidget = new Search();
*
* searchWidget.on("search-clear", function(event){
* console.log("Search input textbox was cleared.");
* });
*/
"search-clear": void;
}
export interface SearchViewModelSelectResultEvent {
/** Whether the popup is enabled for the selected result. */
popupEnabled: boolean;
/** An object containing the results of the search. */
result: SearchResult;
/**
* The source of the selected result. Please see [Search.sources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/#sources) for
* additional information on its properties.
*/
source: SupportedSearchSource;
/** The index of the source of the selected result. */
sourceIndex?: number | null;
}
/**
* Provides the logic for the [Search widget](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/) and [Search component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-search/), which performs search
* operations on [locator service(s)](https://developers.arcgis.com/javascript/latest/references/core/rest/locator/),
* [map](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/)/[feature](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) service feature
* layer(s), and/or [table(s)](https://developers.arcgis.com/javascript/latest/references/core/webdoc/applicationProperties/SearchTable/).
* If using a locator with a geocoding service, the
* [findAddressCandidates](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-find-address-candidates.htm)
* operation is used, whereas [queries](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/) are used on feature layers.
*
* @since 4.0
* @see [Search widget](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/) - _Deprecated since 4.33. Use the [Search component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-search/) instead._
* @see [Search component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-search/)
* @see [Sample - Search component with multiple sources](https://developers.arcgis.com/javascript/latest/sample-code/search-component-multisource/)
* @see [Widget viewModel pattern](https://developers.arcgis.com/javascript/latest/programming-patterns/#widget-viewmodel-pattern)
* @see [locator](https://developers.arcgis.com/javascript/latest/references/core/rest/locator/)
* @see [Layer](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/)
*/
export default class SearchViewModel extends SearchViewModelSuperclass {
/**
* @deprecated
* Do not directly reference this property.
* Use EventNames and EventTypes helpers from \@arcgis/core/Evented
*/
"@eventTypes": SearchViewModelEvents;
constructor(properties?: SearchViewModelProperties);
/**
* The [source](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#sources) object currently selected. Can be either a
* [feature layer](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/) or a [locator](https://developers.arcgis.com/javascript/latest/references/core/rest/locator/).
*/
get activeSource(): SupportedSearchSource | null | undefined;
/**
* The selected source's index. This value is `-1` when all sources are selected.
*
* @default 0
*/
get activeSourceIndex(): number;
set activeSourceIndex(value: number | null | undefined);
/**
* String value used as a hint for input text when searching on multiple sources. See
* the image below to view the location and style of this text.
*
* 
*
* @default "Find address or place"
*/
accessor allPlaceholder: string | null | undefined;
/**
* The combined collection of [defaultSources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#defaultSources)
* and [sources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#sources).
* The [defaultSources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#defaultSources)
* displays first in the Search UI.
*
* @since 4.8
*/
get allSources(): Collection<SupportedSearchSource>;
/**
* Indicates whether to automatically navigate to the selected result.
*
* @default true
* @since 4.32
*/
accessor autoNavigate: boolean;
/**
* Indicates whether to automatically select and zoom to the first geocoded result. If `false`, the
* [findAddressCandidates](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-find-address-candidates.htm)
* operation will still geocode the input string, but the top result will not be selected. To work with the
* geocoded results, you can set up a [@search-complete](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#event-search-complete) event handler and get the results
* through the event object.
*
* @default true
*/
accessor autoSelect: boolean;
/**
* The default popupTemplate.
*
* @since 4.32
*/
get defaultPopupTemplate(): PopupTemplate | null | undefined;
set defaultPopupTemplate(value: PopupTemplateProperties | null | undefined);
/**
* A read-only property that is a [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/)
* of [LayerSearchSource](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/LayerSearchSource/)
* and/or [LocatorSearchSource](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/LocatorSearchSource/). This property
* may contain [ArcGIS Portal](https://enterprise.arcgis.com/en/portal/)
* [locators](https://enterprise.arcgis.com/en/server/latest/publish-services/windows/geocode-services.htm)
* and any web map or web scene [configurable search sources](https://doc.arcgis.com/en/arcgis-online/create-maps/configure-feature-search.htm).
* Web maps or web scenes may contain
* [map](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/)/[feature](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) service feature
* layer(s), and/or [table(s)](https://developers.arcgis.com/javascript/latest/references/core/webdoc/applicationProperties/SearchTable/) as sources.
*
* This property is used to populate the Search UI if the [sources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#sources) property is not set.
*
* @since 4.8
*/
get defaultSources(): Collection<SupportedSearchSource>;
/**
* The default [symbol(s)](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol/) for the search result.
* Choosing a symbol depends on the [View](https://developers.arcgis.com/javascript/latest/references/core/views/View/) type (SceneView or MapView),
* and the [geometry type](https://developers.arcgis.com/javascript/latest/references/core/geometry/Geometry/#type) of the search result.
* This property allows developers to overwrite the default symbology for one or more geometry types.
*
* @since 4.22
* @example
* searchViewModel.defaultSymbols = {
* point: new PictureMarkerSymbol({
* url: "https://freesvg.org/img/1287178070.png",
* size: 24,
* width: 24,
* height: 24
* }),
* polygon: new SimpleFillSymbol({
* color: [235, 235, 235, 0.4],
* outline: {
* color: [130, 130, 130, 1],
* width: 2
* }
* }),
* polyline: new SimpleLineSymbol({
* color: [130, 130, 130, 1],
* width: 2
* })
* };
*/
accessor defaultSymbols: SearchDefaultSymbols;
/**
* Indicates whether or not to include [defaultSources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#defaultSources) in the Search UI.
* This can be a boolean value or a function that returns an array of Search [sources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#sources).
*
* @default true
* @since 4.8
* @example
* // includeDefaultSources passed as a boolean value
* searchViewModel.includeDefaultSources = false;
*
* // includeDefaultSources passed as a function
* searchViewModel.includeDefaultSources = function(sourcesResponse) {
* return sourcesResponse.defaultSources;
* };
*/
accessor includeDefaultSources: boolean | SourcesHandler;
/**
* Indicates whether location services are enabled.
*
* 
*
* > [!WARNING]
* >
* > The use of this property is only supported on secure origins.
* > To use it, switch your application to a secure origin, such as HTTPS.
* > Note that localhost is considered "potentially secure" and can be used
* > for easy testing in browsers that supports [Window.isSecureContext](https://developer.mozilla.org/en-US/docs/Web/API/isSecureContext#browser_compatibility)
* > (currently Chrome and Firefox).
*
* @since 4.8
*/
accessor locationEnabled: boolean;
/**
* The maximum character length of the search text.
*
* @default 128
*/
accessor maxInputLength: number;
/**
* The maximum number of results returned if not specified by the source.
*
* @default 6
*/
accessor maxResults: number;
/**
* The maximum number of suggestions returned if not specified by the source.
*
* If working with the default
* [ArcGIS Online Geocoding service](https://developers.arcgis.com/rest/geocode/api-reference/overview-world-geocoding-service.htm),
* the default remains at `5`.
*
* @default 6
*/
accessor maxSuggestions: number;
/** The associated message bundle. */
accessor messages: Record<string, unknown> | null | undefined;
/**
* The minimum number of characters needed for the search if not specified by the source.
*
* @default 3
*/
accessor minSuggestCharacters: number;
/** The placeholder used by the [activeSource](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#activeSource). */
get placeholder(): string;
/**
* Indicates whether to display the [Popup](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/) on feature click. The graphic can
* be clicked to display a [Popup](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/).
*
* @default true
*/
accessor popupEnabled: boolean;
/**
* A customized [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) for the selected feature.
* Note that any [templates](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/)
* defined on [allSources](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#allSources) take precedence over those defined directly on the template.
*/
get popupTemplate(): PopupTemplate | null | undefined;
set popupTemplate(value: PopupTemplateProperties | null | undefined);
/**
* It is possible to search a specified portal instance's [locator services](https://enterprise.arcgis.com/en/portal/latest/administer/windows/configure-portal-to-geocode-addresses.htm)
* Use this property to set this [ArcGIS Portal](https://enterprise.arcgis.com/en/portal/) instance to search.
*
* @since 4.8
*/
get portal(): Portal | null | undefined;
set portal(value: PortalProperties | null | undefined);
/**
* The number of results found in the search.
*
* @since 4.32
*/
accessor resultCount: number | null | undefined;
/** The graphic used to highlight the resulting feature or location. */
get resultGraphic(): Graphic | null | undefined;
/**
* Indicates if the [resultGraphic](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#resultGraphic) will display at the
* location of the selected feature.
*
* > [!CAUTION]
* >
* > A graphic will be placed in the View's
* > [View.graphics](https://developers.arcgis.com/javascript/latest/references/core/views/View/#graphics)
* > for [layer views](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/)
* > that do not support the `highlight` method.
*
* @default true
*/
accessor resultGraphicEnabled: boolean;
/** The point used to show a popup for the result graphic. */
get resultLocation(): Point | null | undefined;
/** An array of current results from the search. */
get results(): SearchResults[] | null | undefined;
/**
* Indicates whether to display the option to search all sources. When `true`, the "All" option
* is displayed by default:
*
* 
*
* When `false`, no option to search all sources at once is available:
*
* 
*
* @default true
*/
accessor searchAllEnabled: boolean;
/** The value of the search box input text string. */
get searchTerm(): string;
set searchTerm(value: string | null | undefined);
/** The result selected from a search. */
get selectedResult(): SearchResult | null | undefined;
/** The selected [SuggestResult](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/types/#SuggestResult). */
get selectedSuggestion(): SuggestResult | null | undefined;
/**
* Search may be used to search features in a
* [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) or [table](https://developers.arcgis.com/javascript/latest/references/core/webdoc/applicationProperties/SearchTable/),
* or geocode locations with a [locator](https://developers.arcgis.com/javascript/latest/references/core/rest/locator/). The `sources` property defines the sources from which
* to search for the [view](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#view) specified by the Search instance. There are two types of sources:
*
* * [LayerSearchSource](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/LayerSearchSource/)
* * [LocatorSearchSource](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/LocatorSearchSource/)
*
* Any combination of these sources may be used
* together in the same instance of Search.
*
* @example
* // Default sources[] when sources is not specified
* [
* {
* url: "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer",
* singleLineFieldName: "SingleLine",
* outFields: ["Addr_type"],
* name: "ArcGIS World Geocoding Service",
* placeholder: "Adresse",
* resultSymbol: {
* type: "picture-marker", // autocasts as new PictureMarkerSymbol()
* url: this.basePath + "/images/search/search-symbol-32.png",
* size: 24,
* width: 24,
* height: 24,
* xoffset: 0,
* yoffset: 0
* }
* }
* ]
* @example
* // Example of multiple sources[]
* let sources = [
* {
* url: "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer",
* singleLineFieldName: "SingleLine",
* name: "Custom Geocoding Service",
* placeholder: "Search Geocoder",
* maxResults: 3,
* maxSuggestions: 6,
* suggestionsEnabled: false,
* minSuggestCharacters: 0
* }, {
* layer: new FeatureLayer({
* url: "https://services.arcgis.com/DO4gTjwJVIJ7O9Ca/arcgis/rest/services/GeoForm_Survey_v11_live/FeatureServer/0",
* outFields: ["*"]
* }),
* searchFields: ["Email", "URL"],
* displayField: "Email",
* exactMatch: false,
* outFields: ["*"],
* name: "Point FS",
* placeholder: "example: esri",
* maxResults: 6,
* maxSuggestions: 6,
* suggestionsEnabled: true,
* minSuggestCharacters: 0
* },
* {
* layer: new FeatureLayer({
* outFields: ["*"]
* });
* placeholder: "esri",
* name: "A FeatureLayer",
* prefix: "",
* suffix: "",
* maxResults: 1,
* maxSuggestions: 6,
* exactMatch: false,
* searchFields: [], // defaults to FeatureLayer.displayField
* displayField: "", // defaults to FeatureLayer.displayField
* minSuggestCharacters: 0
* }
* ];
* @example
* let sources = [{ ... }, { ... }, { ... }]; // array of sources
* searchViewModel.sources = sources;
*
* // Add to source(s)
* searchViewModel.sources.push({ ... }); // new source
*/
get sources(): Collection<SupportedSearchSource>;
set sources(value: ReadonlyArrayOrCollection<(LocatorSearchSourceProperties | LayerSearchSourceProperties)>);
/**
* The current state. This property was removed from [Search](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/)
* and should now be accessed within the [SearchViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/).
*
* @default "ready"
* @since 4.8
*/
get state(): SearchViewModelState;
/**
* The number of suggestions found for the search.
*
* @since 4.32
*/
accessor suggestionCount: number | null | undefined;
/**
* The millisecond delay after keyup and before making a [suggest()](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#suggest) network request.
*
* @default 350
*/
accessor suggestionDelay: number;
/**
* An array of results from the [suggest method](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#suggest).
*
* This is available if working with a 10.3 or greater geocoding service that has
* [suggest capability loaded](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-suggest.htm) or a
* 10.3 or greater feature layer that supports pagination, i.e. `supportsPagination = true`.
*/
get suggestions(): SuggestResults[] | null | undefined;
/**
* Enable suggestions.
*
* This is only available if working with a 10.3 or greater geocoding service that has [suggest capability loaded]
* (https://developers.arcgis.com/rest/geocode/api-reference/geocoding-suggest.htm) or a 10.3 or greater feature layer that supports pagination, i.e. `supportsPagination = true`.
*
* @default true
*/
accessor suggestionsEnabled: boolean;
/**
* Indicates whether the `View` or `Portal` is loading resources prior to use.
* If resources are still loading, this value is `false`.
* If resources are done loading, this value is `true`.
*
* @default false
* @since 4.16
*/
get updating(): boolean;
/** A reference to the [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). Set this to link to a specific view. */
accessor view: MapViewOrSceneView | null | undefined;
/**
* Clears the current value, search results, suggest results, graphic, and graphics layer.
* It also hides any open menus.
*/
clear(): void;
/**
* Depending on the sources specified, `search()` queries the feature layer(s) and/or performs
* address matching using any specified [Locator(s)](https://developers.arcgis.com/javascript/latest/references/core/rest/locator/) and
* returns the applicable results.
*
* @param searchItem - This searchItem can be
* a string, point geometry, suggest candidate object, or an array containing [latitude,longitude].
* If a geometry is supplied, then it will reverse geocode (locator) or
* findAddressCandidates with geometry instead of text (featurelayer).
* @param options - An object containing an optional `signal` property that can be used to cancel the request.
* @returns When resolved, returns an object containing an array of [search results](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/types/#SearchResult).
*/
search(searchItem?: SearchItem | null | undefined, options?: AbortOptions): Promise<SearchResponse | null | undefined>;
/**
* Returns search results near your current location. It checks whether
* [locationEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/SearchViewModel/#locationEnabled) is `true`. If so, and your browser
* supports [geolocation](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation),
* it will return search results nearby your current location.
*
* @param options - An object containing an optional `signal` property that can be used to cancel the request.
* @returns When resolved, returns [SearchResponse](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/types/#SearchResponse) containing an array of search objects.
* Each of these objects contains a [SearchResult](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/types/#SearchResult).
*/
searchNearby(options?: AbortOptions): Promise<SearchResponse | null | undefined>;
/**
* Selects a result.
*
* @param value - The result object to select.
* @returns When
* resolved, returns [SearchResult](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/types/#SearchResult).
* @since 4.32
*/
select(value: SearchResult | null | undefined): Promise<SearchResult>;
/**
* Performs a suggest() request on the active Locator. It uses the current value
* or one that is passed in.
*
* Suggestions are available if working with a 10.3 or greater geocoding service that has
* [suggest capability loaded](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-suggest.htm)
* or a 10.3 or greater feature layer that supports pagination, i.e.`supportsPagination = true`.
*
* @param suggestTerm - The string value used to suggest() on an active Locator or feature layer. If
* nothing is passed in, takes the current value.
* @param suggestionDelay - The millisecond delay after keyup and before making a `suggest()` network request.
* @param options - An object containing an optional `signal` property that can be used to cancel the request.
* @returns When resolved, returns [SuggestResponse](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/types/#SuggestResponse) containing an array of result objects. Each of these results contains a [SuggestResult](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/types/#SuggestResult).
*/
suggest(suggestTerm?: string, suggestionDelay?: number | null | undefined, options?: AbortOptions): Promise<SuggestResponse | null | undefined>;
/**
* `when()` may be leveraged once the `SearchViewModel` has been updated.
*
* @returns A promise that resolves when `SearchViewModel` has been updated.
* @since 4.16
*/
when(): Promise<void>;
}
declare const SearchViewModelSuperclass: typeof EventedAccessor & typeof GoTo