/**
 * @file Validator for modifiers.
 */
import { type AnyPlatform } from '../compatibility-tables/index.js';
import { type Modifier } from '../nodes/index.js';
import { type ValidationResult } from './helpers.js';
/**
 * Modifier validator class.
 */
declare class ModifierValidator {
    /**
     * Simply checks whether the modifier exists in any adblocker.
     *
     * **Deprecated** and **removed** modifiers are considered as **existent**.
     *
     * @param modifier Already parsed modifier AST node.
     *
     * @returns True if modifier exists, false otherwise.
     */
    exists: (modifier: Modifier) => boolean;
    /**
     * Checks whether the given `modifier` is valid for specified `platforms`.
     * It checks whether the modifier is supported by the product, deprecated, assignable, negatable, etc.
     *
     * @param platforms Platforms to check the modifier for. Can be a specific platform (e.g., AdgExtChrome)
     * or a generic platform (e.g., AdgAny, UboExtChromium, or combination of multiple products).
     * @param modifier Modifier AST node.
     * @param isException Whether the modifier is used in exception rule, default to false.
     * Needed to check whether the modifier is allowed only in blocking or exception rules.
     *
     * @returns Result of modifier validation.
     *
     * @note For single product: specific platforms use exact lookup, generic platforms use first match.
     * If multiple products are specified (e.g., AdgAny | UboAny), validation is skipped and returns valid.
     */
    validate: (platforms: AnyPlatform, modifier: Modifier, isException?: boolean) => ValidationResult;
}
export declare const modifierValidator: ModifierValidator;
export {};
