import Filter from 'ol/format/filter/Filter.js';
import WfsFilterCondition from './wfsfiltercondition.js';
import { LogicalFilterOperator } from '../../models/filter.js';
/**
 * Represents a WFS filter expression consisting of one or more conditions chained with a logical operator (`and` or `or`).
 * Filters can be nested to form a more complex filter expression, e.g.:
 * condition 1 and (condition2 or condition3)
 */
export default class WfsFilter {
    conditions: (WfsFilterCondition | WfsFilter)[];
    logicalOperator?: LogicalFilterOperator;
    constructor(conditions: (WfsFilterCondition | WfsFilter)[], logicalOperator?: LogicalFilterOperator);
    private checkValidParameters;
    /**
     * Checks if the filter is simple, meaning it has only one condition and no logical operator.
     * Simple filters can be displayed in the `QueryBuilderComponent` (layer tree filter).
     */
    isSimpleFilter(): boolean;
    isAdvancedFilter(): boolean;
    toOpenLayersFilter(): Filter | undefined;
    private static toOpenLayersFilterRecursively;
    private static toChainedOpenLayersFilter;
    toWmsGetMapFilter(): string;
}
