import Filter from 'ol/format/filter/Filter.js';
import { XmlTypes } from '../../models/xmlTypes.js';
import { FilterOperator, LogicalFilterOperator } from '../../models/filter.js';
import { BaseFilterCondition } from '../filter/basefilter.js';
/**
 * Define the supported operators for WfsFilter: WFS supports all available operators
 */
declare const wfsOperatorsStrList: readonly ["eq", "neq", "gt", "gte", "lt", "lte", "like", "nlike", "in", "nin", "before", "after", "between", "nbetween", "nul", "nnul", "intersects", "within", "contains"];
export type WfsOperator = (typeof wfsOperatorsStrList)[number];
export declare function isWfsOperator(value: string): value is WfsOperator;
declare class WfsFilterCondition<WfsXmlTypes extends XmlTypes = XmlTypes> extends BaseFilterCondition<WfsXmlTypes> {
    operator: WfsOperator;
    /**
     * Is this a condition that can be displayed in a simple layer tree filter?
     */
    get isSimpleCondition(): boolean;
    /**
     * If the filter value is a geometry, retrieves the OpenLayers Geometry object, otherwise an empty geometry.
     */
    private get olGeometry();
    /**
     * If the filter value is a geometry, retrieves the gml node, otherwise an empty string.
     */
    private get gmlGeometry();
    /**
     * If the filter value is a list, returns the parsed list of values, otherwise an empty array.
     */
    private get valueList();
    constructor(property: string, operator: FilterOperator, value?: string, value2?: string, propertyType?: WfsXmlTypes);
    static get supportedOperators(): Array<{
        operator: WfsOperator;
        displayName: string;
    }>;
    /**
     * Returns the supported operators for the given attribute type.
     */
    static supportedOperatorsByAttributeType(attributeType: string): {
        operator: FilterOperator;
        displayName: string;
    }[];
    toOpenLayersFilter(): Filter;
    /**
     *
     * @returns a simple filter string that can be used in a WMS GetMap request, does not provide any XML namespace (xmlns attributes)
     */
    toWmsGetMapFilter(): string;
    protected static simpleEqFilter(name: string, value: string): string;
    protected static simpleNeqFilter(name: string, value: string): string;
    protected static simpleLtFilter(name: string, value: string): string;
    protected static simpleLteFilter(name: string, value: string): string;
    protected static simpleGtFilter(name: string, value: string): string;
    protected static simpleGteFilter(name: string, value: string): string;
    protected static simpleBetweenFilter(name: string, value: string, value2: string): string;
    protected static simpleNbetweenFilter(name: string, value: string, value2: string): string;
    protected static simpleInnerLikeFilter(name: string, value: string, wildCard?: string): string;
    protected static simpleLikeFilter(name: string, value: string, wildCard?: string): string;
    protected static simpleNlikeFilter(name: string, value: string, wildCard?: string): string;
    protected static simpleInFilter(name: string, valueList: string[]): string;
    protected static simpleNinFilter(name: string, valueList: string[]): string;
    protected static simpleContainsFilter(name: string, value: string): string;
    protected static simpleIntersectsFilter(name: string, value: string): string;
    protected static simpleWithinFilter(name: string, value: string): string;
    protected static simpleLikeFilterGenerateWildCard(value: string): string;
    static buildNestedExpression(filterStrings: string[], logicalOperator: LogicalFilterOperator): string;
}
export default WfsFilterCondition;
