/**
 * extends import('ngeo/rule/Rule').RuleOptions
 *
 * @typedef {Object} GeometryOptions
 * @property {Object<string, *>} [featureProperties] Properties for the feature.
 * @property {boolean} [active=false] (RuleOptions)
 * @property {number|string} [expression] (RuleOptions)
 * @property {number|string|string[]} [literal] (RuleOptions)
 * @property {boolean} [isCustom] (RuleOptions)
 * @property {number} [lowerBoundary] (RuleOptions)
 * @property {string} name (RuleOptions)
 * @property {string} [operator] (RuleOptions)
 * @property {string[]} [operators] (RuleOptions)
 * @property {string} propertyName (RuleOptions)
 * @property {string} [type] (RuleOptions)
 * @property {number} [upperBoundary] (RuleOptions)
 */
/**
 * @hidden
 */
export default class _default extends ngeoRuleRule {
    /**
     * A rule bound to the geometry of a `ol.Feature` object. Changes made
     * to the geometry are applied to the `literal` property of the rule.
     *
     * @param {GeometryOptions} options Options.
     */
    constructor(options: GeometryOptions);
    /**
     * @private
     */
    private feature_;
    /**
     * @type {import('ol/format/GeoJSON').default}
     * @private
     */
    private format_;
    /**
     * @type {boolean}
     * @private
     */
    private updatingLiteral_;
    /**
     * @type {boolean}
     * @private
     */
    private updatingGeometry_;
    /**
     * @type {?import('ol/events').EventsKey}
     * @private
     */
    private geometryChangeListenerKey_;
    /**
     * @returns {olFeature<import('ol/geom/Geometry').default>} Feature.
     */
    get feature(): olFeature<import("ol/geom/Geometry").default>;
    /**
     * @param {?import('ol/geom/Geometry').default} geometry Geometry
     */
    set geometry(geometry: import("ol/geom/Geometry").default);
    /**
     * @returns {?import('ol/geom/Geometry').default} Geometry
     */
    get geometry(): import("ol/geom/Geometry").default;
    /**
     * Called when the geometry property in the feature changes. Update the literal accordingly.
     *
     * @returns {void}
     * @private
     */
    private handleFeatureGeometryChange_;
    /**
     * Called when the geometry of the features changes. Update the literal
     * accordingly.
     *
     * @param {Event|import('ol/events/Event').default} evt Event
     * @private
     */
    private handleGeometryChange_;
    /**
     * Set geometry property using the literal property.
     *
     * @private
     */
    private setGeometryFromLiteral_;
    /**
     * Unlisten the feature geometry change event, then listen to it if the
     * feature has a geometry.
     *
     * @private
     */
    private registerGeometryChange_;
}
/**
 * extends import('ngeo/rule/Rule').RuleOptions
 */
export type GeometryOptions = {
    /**
     * Properties for the feature.
     */
    featureProperties?: {
        [x: string]: any;
    };
    /**
     * (RuleOptions)
     */
    active?: boolean;
    /**
     * (RuleOptions)
     */
    expression?: number | string;
    /**
     * (RuleOptions)
     */
    literal?: number | string | string[];
    /**
     * (RuleOptions)
     */
    isCustom?: boolean;
    /**
     * (RuleOptions)
     */
    lowerBoundary?: number;
    /**
     * (RuleOptions)
     */
    name: string;
    /**
     * (RuleOptions)
     */
    operator?: string;
    /**
     * (RuleOptions)
     */
    operators?: string[];
    /**
     * (RuleOptions)
     */
    propertyName: string;
    /**
     * (RuleOptions)
     */
    type?: string;
    /**
     * (RuleOptions)
     */
    upperBoundary?: number;
};
import ngeoRuleRule from 'ngeo/rule/Rule';
import olFeature from 'ol/Feature';
