import LayerWms from '../../models/layers/layerwms.js';
import ServerWfs, { LayerAttribute } from '../../models/serverwfs.js';
import WfsClient, { WfsClientOptionalOptions } from './wfsclient.js';
import ServerOgc from '../../models/serverogc.js';
import VendorSpecificOgcServerManager from '../vendorspecificogcservermanager.js';
import Feature from 'ol/Feature.js';
export default class WfsManager extends VendorSpecificOgcServerManager<WfsClient, WfsClientOptionalOptions> {
    private get state();
    getClientId(ogcServer: ServerOgc): string;
    static readonly UnknownFeatureType: string;
    initializeSingleton(): void;
    private onSelectedFeaturesFilterChange;
    /**
     * Determines whether the specified layer is the first active child layer of a time-aware group layer,
     * or if it is independent (= with time restriction, but without a time aware parent).
     * This is needed to prevent repeated identical requests when setting the time restriction on
     * multiple child layers at once.
     *
     * @param {TimeAwareLayer} layer - The layer to check.
     */
    private isFirstChildOfTimeAwareGroupOrIndependent;
    getServerWfs(ogcServer: ServerOgc): Promise<ServerWfs>;
    getServerWfs(layer: LayerWms): Promise<ServerWfs>;
    /**
     * Extracts the feature type from the feature's ID. A feature ID may contain a prefix,
     * the feature type and a feature-specific ID. It returns "UNKNOWN" if the ID is absent.
     */
    static extractFeatureTypeFromId(feature: Feature): string;
    /**
     * Compares attribute names between query layers of a LayerWms object.
     * Returns a list of attributes that are common to all query layers.
     * If the layer has no query layers, it returns an empty array.
     * Can optionally include the geometry column name if it is present in all query layers.
     */
    commonAttributesByLayer(layer: LayerWms, includeGeometryColumn?: boolean): Promise<LayerAttribute[]>;
    /**
     * Retrieves the list of valid values for all enumerated attributes within a given layer.
     */
    getAttributeChoices(layer: LayerWms): Promise<Map<string, string[]>>;
}
