declare const _default: any;
export default _default;
export type GmfThemesResponse = {
    background_layers: Array<GmfLayer | GmfGroup>;
    errors: string[];
    ogcServers: GmfOgcServers;
    themes: GmfTheme[];
};
export type GmfRootNode = {
    children: GmfGroup[];
};
/**
 * Contains the common element of all the elements of the GeoMapFish layer tree.
 */
export type GmfBaseNode = {
    id: number;
    /**
     * The related metadata.
     */
    metadata: GmfMetaData;
    name: string;
};
/**
 * The element we can select in the theme selector.
 * extends GmfBaseNode
 */
export type GmfTheme = {
    /**
     * (GmfBaseNode)
     */
    id: number;
    /**
     * (GmfBaseNode)
     */
    metadata: GmfMetaData;
    /**
     * (GmfBaseNode)
     */
    name: string;
    /**
     * The first level layer groups.
     */
    children: GmfGroup[];
    functionalities: GmfFunctionalities;
};
/**
 * A GeoMapFish group
 * not an OpenLayers group
 * neither a WMS group.
 * This represent « first level group » (Block in the layer tree),
 * or all sub nodes that's not a leaf.
 * extends GmfBaseNode
 */
export type GmfGroup = {
    /**
     * (GmfBaseNode)
     */
    id: number;
    /**
     * (GmfBaseNode)
     */
    metadata: GmfMetaData;
    /**
     * (GmfBaseNode)
     */
    name: string;
    children: Array<GmfGroup | GmfLayer>;
    /**
     * The dimensions managed by the
     * OpenLayers layer, if the value is null we will take the dimension from the application.
     * This is present only on non mixed first level group.
     */
    dimensions: import("ngeo/datasource/OGC").Dimensions;
    /**
     * A mixed group is a group on which one the layers comes from different sources,
     * then all the sub GeoMapFish layers (leaf) will be an OpenLayers layer.
     * By opposition a non mixed first level group contains only GeoMapFish layers WMS
     * from the same server, then we have only one OpenLayers layer for all the first level group.
     * All the group child will have the same value of his parent,
     * In other word, all the group of a first level group will have the same value.
     */
    mixed: boolean;
    /**
     * On non mixed first level group it is the ogc server to use.
     */
    ogcServer?: string;
    /**
     * On non mixed first level group with more
     * then one time layer, it is the time information.
     */
    time?: import("ngeo/datasource/OGC").TimeProperty;
    /**
     * a popup identifier for the associate submenu.
     */
    popupId?: string;
};
/**
 * A GeoMapFish layer
 * not an OpenLayers layer
 * neither a WMS layer.
 * This is also the leaf of the tree.
 * extends GmfBaseNode
 */
export type GmfLayer = {
    /**
     * (GmfBaseNode)
     */
    id: number;
    /**
     * (GmfBaseNode)
     */
    metadata: GmfMetaData;
    /**
     * (GmfBaseNode)
     */
    name: string;
    /**
     * The dimensions managed by the layer,
     * if the value is null we will take the dimension from the application.
     * Present only on layer in a mixed group.
     */
    dimensions: import("ngeo/datasource/OGC").Dimensions;
    /**
     * The dimensions
     * applied by filters on the layer configuration, if the value is null we will take the dimension from
     * the application.
     */
    dimensionsFilters: import("ngeo/datasource/OGC").DimensionsFiltersConfig;
    editable?: boolean;
    style?: string;
    /**
     * WMS, WMTS or VectorTiles.
     */
    type: string;
    ogcServer?: string;
    /**
     * A popup identifier for the associate submenu.
     */
    popupId?: string;
    /**
     * The layer type.
     */
    layerType: string;
};
/**
 * extends GmfLayer
 */
export type GmfLayerWMS = {
    /**
     * (GmfBaseNode)
     */
    id: number;
    /**
     * (GmfBaseNode)
     */
    metadata: GmfMetaData;
    /**
     * (GmfBaseNode)
     */
    name: string;
    /**
     * (GmfLayer)
     */
    dimensions: import("ngeo/datasource/OGC").Dimensions;
    /**
     * (GmfLayer)
     */
    dimensionsFilters: import("ngeo/datasource/OGC").DimensionsFiltersConfig;
    /**
     * (GmfLayer)
     */
    editable?: boolean;
    /**
     * (GmfLayer)
     */
    style?: string;
    /**
     * (GmfLayer)
     */
    type: string;
    childLayers: GmfLayerChildLayer[];
    /**
     * The comma separated list of WMS layers or groups.
     */
    layers: string;
    /**
     * The max resolution where the layer is visible.
     */
    maxResolutionHint: number;
    /**
     * The min resolution where the layer is visible.
     */
    minResolutionHint: number;
    ogcServer?: string;
    /**
     * The time information if the layer
     * directly manage it, see also `{GmfGroup.time}`.
     */
    time?: import("ngeo/datasource/OGC").TimeProperty;
};
/**
 * extends GmfLayer
 */
export type GmfLayerWMTS = {
    /**
     * (GmfBaseNode)
     */
    id: number;
    /**
     * (GmfBaseNode)
     */
    metadata: GmfMetaData;
    /**
     * (GmfBaseNode)
     */
    name: string;
    /**
     * (GmfLayer)
     */
    dimensions: import("ngeo/datasource/OGC").Dimensions;
    /**
     * (GmfLayer)
     */
    dimensionsFilters: import("ngeo/datasource/OGC").DimensionsFiltersConfig;
    /**
     * (GmfLayer)
     */
    editable?: boolean;
    /**
     * (GmfLayer)
     */
    style?: string;
    /**
     * (GmfLayer)
     */
    type: string;
    /**
     * 'image/png' or 'image/jpeg'.
     */
    imageType: string;
    layer: string;
    matrixSet: string;
    url: string;
};
/**
 * extends GmfLayer
 */
export type GmfLayerVectorTiles = {
    /**
     * (GmfBaseNode)
     */
    id: number;
    /**
     * (GmfBaseNode)
     */
    metadata: GmfMetaData;
    /**
     * (GmfBaseNode)
     */
    name: string;
    /**
     * (GmfLayer)
     */
    editable?: boolean;
    /**
     * (GmfLayer)
     */
    style: string;
    /**
     * (GmfLayer)
     */
    type: string;
};
/**
 * Additional attributes related on a WMS layers (or WFS features type).
 */
export type GmfLayerChildLayer = {
    /**
     * If the layer is queryable and this property is set to
     * false, then the layer won't be used in queries issued. Defaults to `true`.
     */
    getData?: boolean | undefined;
    /**
     * The min resolution where the layer is visible.
     */
    maxResolutionHint: number;
    /**
     * The max resolution where the layer is visible.
     */
    minResolutionHint: number;
    name: string;
    queryable: boolean;
};
export type GmfOgcServers = {
    [x: string]: GmfOgcServer;
};
export type GmfOgcServerAttribute = {
    /**
     * The attribute alias.
     */
    alias?: string;
    /**
     * If not '0', then the attribute is
     * considered required.
     */
    minOccurs?: string;
    /**
     * The attribute namespace.
     */
    namespace: string;
    /**
     * The attribute type (in namespace).
     */
    type: string;
};
export type GmfOgcServer = {
    credential: boolean;
    /**
     * 'image/png' or 'image/jpeg'.
     */
    imageType: string;
    isSingleTile: boolean;
    /**
     * Namespace
     */
    namespace?: string;
    /**
     * 'mapserver', 'qgisserver', 'geoserver' or 'other'.
     */
    type: string;
    url: string;
    /**
     * The WFS URL.
     */
    urlWfs: string;
    /**
     * WFS feature namespace
     */
    wfsFeatureNS?: string;
    wfsSupport: boolean;
    attributes: {
        [x: string]: {
            [x: string]: GmfOgcServerAttribute;
        };
    };
};
export type GmfFunctionalities = {
    /**
     * The default base map.
     */
    default_basemap?: string[];
    /**
     * When set, contains the name of the panel to open upon loading an
     * application.
     * Note: although this is a list, only one can be defined.
     */
    open_panel?: string[];
    /**
     * Name of the layer (data source) that should be toggled
     * in the filter tool upon loading an application.
     * Note: although this is a list, only one can be defined.
     */
    preset_layer_filter?: string[];
};
export type GmfMetaData = {
    /**
     * Whether the geometry from this data source can be copied to other data
     * sources or not. For WMS layers.
     */
    copyable?: boolean;
    /**
     * List of attribute names which should have rules
     * already ready when using the filter tools. For WMS layers.
     */
    directedFilterAttributes?: string[];
    /**
     * The disclaimer text for this element.
     * For every kind of layer, layer groups and themes.
     */
    disclaimer?: string;
    /**
     * List of attribute names which have enumerated attribute
     * values (for filters purpose). For WMS layers.
     */
    enumeratedAttributes?: string[];
    /**
     * Whether the group contains children that have to be mutually
     * exclusive, meaning that only one child may be ON at any time.
     */
    exclusiveGroup?: boolean;
    /**
     * The URL of the icon to display in the layer tree. For every kind of layer.
     */
    iconUrl?: string;
    /**
     * The field used in the 'display query window' as feature title.
     * For WMS layers.
     */
    identifierAttributeField: string;
    /**
     * The field used in the selector tooltip to name the layer when multiple ones are selected on the map.
     * For WMS layers.
     */
    editingSelectionAttribute: string;
    /**
     * Is the layer checked by default. For WMS and WMTS layers.
     */
    isChecked?: boolean | undefined;
    /**
     * Whether the layer group is expanded by default. For
     * layer groups (only).
     */
    isExpanded?: boolean | undefined;
    /**
     * Whether the print should rotate the symbols. For layer groups
     * (only).
     */
    printNativeAngle?: boolean;
    /**
     * Whether the legend is expanded by default. For WMS
     * and WMTS layers.
     */
    isLegendExpanded?: boolean | undefined;
    /**
     * Display the legend of this layers. For WMS and WMTS layers.
     */
    legend?: boolean;
    /**
     * The URL to the image used as a legend in the layer tree. For WMS and
     * WMTS layers.
     */
    legendImage?: string;
    /**
     * The URLs to the hi DPI images used as a legend
     * in the print. For WMS and WMTS layers.
     */
    hiDPILegendImages?: {
        [x: string]: string;
    };
    /**
     * The WMS 'RULE' parameter used to display the icon in the layer tree.
     * "Short version" of the 'iconURL' metadata for WMS layers. For WMS layers.
     */
    legendRule?: string;
    /**
     * The max resolution where the layer is queryable. For WMTS and
     * vector tiles layers.
     */
    maxQueryResolution?: number;
    /**
     * The max resolution where the layer is visible. For WMS layers.
     * On WMTS and vector tiles layers it will have an effect on the node in the layertree but not on
     * the layertree directly.
     */
    maxResolution?: number;
    /**
     * The URL to the information on this layer. For WMS and WMTS layers.
     */
    metadataUrl?: string;
    /**
     * The min resolution where the layer is queryable. For WMTS and
     * vector tiles layers.
     */
    minQueryResolution?: number;
    /**
     * The min resolution where the layer is visible. For WMS layers.
     * On WMTS and vector tiles layers it will have an effect on the node in the layertree but not on
     * the layer directly.
     */
    minResolution?: number;
    /**
     * values to define the shape (bbox) to use to query
     * the layer. The values are used like a padding in css with 1, 2, 3 or 4 comma separated
     * values: all / top-bottom, left-right / top, right-left, bottom / top, right, bottom, left.
     */
    queryIconPosition?: number[];
    /**
     * The corresponding OGC server. For WMTS and vector tiles layers.
     */
    ogcServer?: string;
    /**
     * Layer opacity. 1.0 means fully visible, 0 means invisible, for every
     * kind of layers.
     */
    opacity?: number;
    /**
     * A WMS layers (comma separated) that will be used instead of the WMTS
     * layer in the print. Used to increase quality of printed WMTS layer. An OGCServer metadata must be set
     * with the name of the OGC server to use for these wms layers. For WMTS layers.
     */
    printLayers?: string;
    /**
     * Layers names separate by a comma. For WMTS layers: The WMS layers used as
     * references to query the WMTS or vector tiles layers. An OGCServer metadata must be set with the
     * name of the OGC server to use for this wms layer. For WFS GetFeature request: The WFS layers
     * that should be queried.
     */
    queryLayers?: string;
    /**
     * The icon visible in the background selector. For every kind of layers.
     */
    thumbnail?: string;
    /**
     * The name of the time attribute. For WMS(-T) layers.
     */
    timeAttribute?: string;
    /**
     * The snapping configuration for the leaf. If set, the
     * leaf's layer is considered to be "snappable", even if the config itself is empty.
     * Example value: {'tolerance': 50, 'edge': false} For WMS layers.
     */
    snappingConfig?: GmfSnappingConfig;
    /**
     * A corresponding WMS layers (comma separated) for WMTS and vector tiles
     * layers. Used to query the WMTS or vector tiles layers and to print them. See also printLayers and
     * queryLayers metadata for more granularity. An OGCServer metadata must be set with the name
     * of the OGC server to use for these wms layers. For WMTS and vector tiles Layers.
     */
    wmsLayers?: string;
    /**
     * The custom OpenLayers WMS layer options.
     */
    customOpenLayersOptions?: Object;
};
export type GmfSnappingConfig = {
    /**
     * Determines whether the snapping on this layer is activated by default.
     */
    activated?: boolean;
    /**
     * Determines whethers the edges of features from the node layer can be
     * snapped or not.
     */
    edge?: boolean;
    /**
     * The tolerance in pixels the snapping should occur for the node layer.
     */
    tolerance?: number;
    /**
     * Determines whethers the vertices of features from the node layer can be
     * snapped or not.
     */
    vertex?: boolean;
};
export type GmfLayerAttributeValuesResponse = {
    items: GmfLayerAttributeValue[];
};
export type GmfLayerAttributeValue = {
    label: string;
    value: string;
};
