import type Point from "@arcgis/core/geometry/Point";
import type SpatialReference from "@arcgis/core/geometry/SpatialReference";
import type { GeometryUnion } from "@arcgis/core/geometry/types.js";
import type { FeatureSource } from "../../data/FeatureSource.js";
import type { CancelToken } from "../../support/Cancellable.js";
import type { TaskResult } from "../TaskResult.js";
/**
 * Options that can be passed into
 * {@link tasks/search/SearchService!SearchService.search}.
 */
export interface SearchOptions {
    /**
     * An optional cancel token from a {@link support/Cancellable!Cancellable}
     * that can be used to cancel the search.
     */
    cancelToken?: CancelToken;
    /**
     * The user's locale. Affects how numbers and other locale-specific values
     * in the search text are interpreted. If not specified, the current global
     * locale is used (see "locale" module).
     */
    locale?: string;
    /**
     * Initial search area. If possible the search area will be expanded until
     * the maximum number of results are fulfilled.
     */
    initialSearchArea?: GeometryUnion | undefined;
    /**
     * Indicates the current scale of the supplied search area. If not provided
     * the search area is limited to the initial search area.
     */
    currentScale?: number;
    /**
     * Whether geometry for features should be returned.
     */
    returnGeometry?: boolean;
    /**
     * The maximum number of suggestions to return when performing a suggest
     * operation.
     */
    maxSuggestions?: number;
    /**
     * The spatial reference for the returned geometry.
     */
    outSpatialReference?: SpatialReference | undefined;
    /**
     * The maximum allowable offset used for generalizing geometries returned by
     * the query operation.
     */
    maxAllowableOffset?: number;
    /**
     * The maximum number of results to return.
     */
    maxResults?: number;
    /**
     * The maximum number of results to return from a query.
     */
    maxQueryResults?: number;
    /**
     * If specified, this will influence the score of spatial features based on
     * their proximity to this point. Most commonly this would be the user's
     * current location, but can be any point of interest. This option requires
     * spatialFilter to also be specified.
     */
    near?: Point;
    /**
     * Indicates if the search string should be tokenized (in supported search
     * providers). Tokenization of the search term will provide broader results
     * including partial matches that may not be desirable in all scenarios.
     * Defaults to 'true'.
     */
    tokenizeSearchString?: boolean;
    /**
     * An optional callback that will be invoked with additional information
     * about the tasks's result for each source.
     */
    onSourceComplete?: (result: TaskResult) => void;
}
export declare namespace SearchOptions {
    /**
     * Default values for {@link tasks/search/SearchOptions!SearchOptions}.
     */
    const DEFAULTS: SearchOptions;
    /**
     * Gets default search options configured in a
     * {@link data/FeatureSource!FeatureSource}.
     *
     * @param source The feature source.
     */
    function fromFeatureSource(source: FeatureSource): SearchOptions;
}
