import { ActiveSelectedFeature } from "../common";
import { RuntimeMap } from '../contracts/runtime-map';
import { FeatureSet, QueryMapFeaturesResponse } from '../contracts/query';
import { WebLayout } from '../contracts/weblayout';
import { ApplicationDefinition } from '../contracts/fusion';
import { MapDefinition } from "../contracts/map-definition";
import { TileSetDefinition } from "../contracts/tile-set-definition";
import { SiteVersionResponse } from '../contracts/common';
/**
 * Indicates if the de-arrayified result is a {@link WebLayout}
 *
 * @since 0.14
 */
export declare function isWebLayout(arg: DeArrayifiedResult): arg is WebLayout;
/**
 * Indicates if the de-arrayified result is an {@link ApplicationDefinition}
 *
 * @since 0.14
 */
export declare function isAppDef(arg: DeArrayifiedResult): arg is ApplicationDefinition;
/**
 * Indicates if the de-arrayified result is a {@link MapDefinition}
 *
 * @since 0.14
 */
export declare function isMapDef(arg: DeArrayifiedResult): arg is MapDefinition;
/**
 * Indicates if the de-arrayified result is a {@link TileSetDefinition}
 *
 * @since 0.14
 */
export declare function isTileSet(arg: DeArrayifiedResult): arg is TileSetDefinition;
/**
 * Indicates if the de-arrayified result is a {@link SiteVersionResponse}
 *
 * @since 0.14
 */
export declare function isSiteVersion(arg: DeArrayifiedResult): arg is SiteVersionResponse;
/**
 * Indicates if the de-arrayified result is a {@link QueryMapFeaturesResponse}
 *
 * @since 0.14
 */
export declare function isQueryMapFeaturesResponse(arg: DeArrayifiedResult): arg is QueryMapFeaturesResponse;
/**
 * The result of the normalization of JSON from the mapagent
 *
 * @since 0.14
 */
export declare type DeArrayifiedResult = RuntimeMap | QueryMapFeaturesResponse | WebLayout | ApplicationDefinition | MapDefinition | TileSetDefinition | SiteVersionResponse;
/**
 * Normalizes the given JSON object to match the content model of its original XML form
 *
 * @export
 * @param {*} json The JSON object to normalize
 * @returns {*} The normalized JSON object
 */
export declare function deArrayify(json: any): DeArrayifiedResult;
/**
 * Builds an XML selection string from the given selection set.
 *
 * @export
 * @param {(FeatureSet | undefined)} selection The selection set
 * @param {string[]} [layerIds] If specified, the selection XML will only include selections from the specified layers
 * @returns {string} The selection XML string
 */
export declare function buildSelectionXml(selection: FeatureSet | undefined, layerIds?: string[]): string;
/**
 * Can only be used for a v4.0.0 or higher QUERYMAPFEATURES request
 *
 * @param selection Current selection set
 * @param feat The active selected feature
 */
export declare function getActiveSelectedFeatureXml(selection: FeatureSet, feat: ActiveSelectedFeature): string | undefined;
