import * as React from "react";
import { SelectedFeature, LayerMetadata } from "../api/contracts/query";
import { ICompositeSelection } from "../api/common";
export interface ISelectedFeatureProps {
    selectedFeature: SelectedFeature;
    selectedLayer?: LayerMetadata;
    locale: string;
    allowHtmlValues: boolean;
    cleanHTML?: (html: string) => string;
}
/**
 * SelectionPanel component props
 *
 * @export
 * @interface ISelectionPanelProps
 */
export interface ISelectionPanelProps {
    locale?: string;
    /**
     * @since 0.14
     */
    selection: ICompositeSelection;
    onResolveLayerLabel?: (layerId: string, layerName: string) => string | undefined;
    onRequestZoomToFeature: (feat: SelectedFeature) => void;
    onShowSelectedFeature: (layerId: string, selectionKey: string) => void;
    maxHeight?: number;
    selectedFeatureRenderer?: (props: ISelectedFeatureProps) => JSX.Element;
    /**
     * Controls whether HTML values are allowed be rendered in property values
     *
     * @since 0.11
     * @type {boolean}
     * @memberof ISelectionPanelProps
     */
    allowHtmlValues: boolean;
    /**
     * If allowHtmlValues = true, defines a custom function for sanitizing the given HTML string
     * to guard against cross-site scripting attacks. You are strongly recommended to provide
     * a santitization function if your HTML property values come from an un-trusted source
     *
     * @since 0.11
     * @memberof ISelectionPanelProps
     */
    cleanHTML?: (html: string) => string;
}
/**
 * Displays attributes of selected features with the ability to zoom in on selected features
 * @param props
 */
export declare const SelectionPanel: React.MemoExoticComponent<(props: ISelectionPanelProps) => JSX.Element>;
