import IGirafeContext from '../../tools/context/icontext.js';
import { LayerAttribute } from '../../models/serverwfs.js';
import { FilterOperator, LogicalFilterOperator } from '../../models/filter.js';
import { BaseFilterCondition } from '../../tools/filter/basefilter.js';
declare class FilterConditionElement {
    private readonly context;
    id: string;
    applied: boolean;
    attribute?: LayerAttribute;
    attributeDisplayName?: string;
    attributeInputType?: string;
    availableOperators?: {
        operator: FilterOperator;
        displayName: string;
    }[];
    operator?: FilterOperator;
    value?: string;
    value2?: string;
    choices?: string[];
    logicalOperator?: LogicalFilterOperator;
    filterConditionInstance?: BaseFilterCondition<unknown>;
    private geometryChangeHandler?;
    static readonly drawingStateLocation = "advancedFilterDrawing";
    private readonly drawingState;
    private readonly spatialOperatorsByDrawingShape;
    constructor(context: IGirafeContext);
    setLogicalOperator(operator: string): void;
    setAttribute(attribute: LayerAttribute, attributeDisplayName: string, attributeInputType: string, availableOperators: {
        operator: FilterOperator;
        displayName: string;
    }[], choices: string[]): void;
    setOperator(operator: string): void;
    updateDrawingToolbar(): void;
    private getSupportedDrawingToolsByOperator;
    registerGeometryListener(): void;
    resetDrawingToolbar(): void;
    reset(): void;
    remove(): void;
    isValid(): boolean;
    apply(): boolean;
    private i18n;
    isOperatorSelectorEnabled(): boolean;
    isValueInputVisible(): boolean;
    isValue2InputVisible(): boolean;
    isChoicesListVisible(): boolean;
    isGeometryToolbarVisible(): boolean;
    /**
     * Check if the operator can be used with the current spatial attribute type
     */
    isSpatialOperatorEnabled(operator: FilterOperator): boolean;
    /**
     * Converts a filter condition to its text representation, using the filterCondition instances
     * toTextRepresentation method and adding the logical operator if it is defined.
     */
    toText(): string;
}
export default FilterConditionElement;
