export class DynamicRuleDescription {
    /**
     *
     * @type {string}
     */
    id: string;
    /**
     *
     * @type {ReactiveExpression}
     */
    condition: ReactiveExpression;
    /**
     *
     * @type {AbstractActionDescription}
     */
    action: AbstractActionDescription;
    /**
     *
     * @type {ReactiveReference[]}
     */
    references: ReactiveReference[];
    /**
     * Rules with higher priority have the right to interrupt lower priority rules
     * @type {number}
     */
    priority: number;
    /**
     * @private
     * @type {number}
     */
    private predicate_complexity;
    /**
     * Specified which global cooldowns will be triggered and for how long
     * @type {DynamicRuleCooldownDescription[]}
     */
    cooldowns_global: DynamicRuleCooldownDescription[];
    /**
     *
     * @param {DynamicRuleDescription} other
     * @returns {boolean}
     */
    equals(other: DynamicRuleDescription): boolean;
    /**
     *
     * @returns {number}
     */
    getPredicateComplexity(): number;
    __increment_predicate_complexity(): void;
    build(): void;
    fromJSON({ id, condition, action, global_cooldowns, priority }: {
        id?: string;
        condition: any;
        action: any;
        global_cooldowns?: any[];
        priority?: number;
    }): void;
}
import { DynamicRuleCooldownDescription } from "./DynamicRuleCooldownDescription.js";
//# sourceMappingURL=DynamicRuleDescription.d.ts.map