import { Abilities, ToAbilityTypes, Normalize, ConditionsMatcher, FieldMatcher } from './types'; import { RawRule } from './RawRule'; type Tuple = Normalize>; export interface RuleOptions { conditionsMatcher?: ConditionsMatcher; fieldMatcher?: FieldMatcher; resolveAction(action: string | string[]): string | string[]; } export declare class Rule { private _matchConditions; private _matchField; private readonly _options; readonly action: Tuple[0] | Tuple[0][]; readonly subject: Tuple[1] | Tuple[1][]; readonly inverted: boolean; readonly conditions: C | undefined; readonly fields: string[] | undefined; readonly reason: string | undefined; readonly origin: RawRule, C>; readonly priority: number; constructor(rule: RawRule, C>, options: RuleOptions, priority?: number); private _conditionsMatcher; get ast(): import("@ucast/mongo2js").Condition | undefined; matchesConditions(object: Normalize[1] | undefined): boolean; matchesField(field: string | undefined): boolean; } export {};