import LayerWms from '../../models/layers/layerwms.js';
import { LayerAttribute } from '../../models/serverwfs.js';
import { LogicalFilterOperator } from '../../models/filter.js';
import IGirafeContext from '../../tools/context/icontext.js';
import WfsFilter from '../../tools/wfs/wfsfilter.js';
import ColumnAliasHelper from '../../tools/utils/aliases.js';
import FilterConditionElement from './filterconditionelement.js';
/**
 * Represents the state of a filter element in the AdvancedFilterComponent. This class provides functionality
 * to store and manage filter conditions, operators, and attributes.
 */
declare class LayerFilterElement {
    id: string;
    layer?: LayerWms;
    attributes: LayerAttribute[];
    conditions: FilterConditionElement[];
    inverted: boolean;
    attributeChoices: Map<string, string[]>;
    attributeTitles: Map<string, string>;
    private readonly context;
    private readonly columnAliasHelper;
    private readonly position;
    constructor(context: IGirafeContext, columnAliasHelper: ColumnAliasHelper, position: number);
    /**
     * Sets the filter element with all conditions from a given layer with an existing filter.
     */
    setFromLayer(layer: LayerWms): Promise<void>;
    private setConditionsFromLayerRecursively;
    get title(): string;
    get availableLogicalOperators(): {
        operator: LogicalFilterOperator;
        displayName: string;
    }[];
    setLayer(layer: LayerWms): Promise<void>;
    removeConditions(): void;
    addCondition(): void;
    removeCondition(condition: FilterConditionElement): void;
    hasAppliedConditions(): boolean;
    hasNoneAppliedConditions(): boolean;
    removeNonAppliedConditions(): void;
    setAttributeInCondition(condition: FilterConditionElement, attributeName: string): void;
    private isEnumeratedAttribute;
    private getOperatorsByAttributeType;
    applyFilter(): WfsFilter | undefined;
    toggleInverted(): void;
    i18n(key: string): string;
    isLogicalOperatorSelectorVisible(condition: FilterConditionElement): boolean;
    private getInputTypeByAttributeType;
    getAttributeDisplayName(attribute: LayerAttribute): string;
}
export default LayerFilterElement;
