export interface AbacRule { id: string; name: string; type: AbacRuleType; predicate: string; condition?: Condition; description: string; active: boolean; } export type AbacRuleType = 'METADATA' | 'ATTRIBUTE'; export type ConditionType = 'METADATA' | 'ATTRIBUTE' | 'OR' | 'AND'; export interface Condition { type: ConditionType; composed?: Array; attribute?: string; metadata?: string; value?: string | number; operator?: OperatorType; } export interface NormalizedCondition { id: string; type: ConditionType; parentId: string; composed?: string[]; attribute?: string; metadata?: string; value?: string | number; operator?: OperatorType; } export type OperatorType = 'EQUALS' | 'CONTAINS' | 'START_WITH' | 'END_WITH' | 'GREATER_THAN' | 'LOWER_THAN' | 'INNER_BOUNDS' | 'OUTER_BOUNDS' | 'NOT_EQUALS'; export interface OperatorOption { type: 'string' | 'number' | 'date'; operator: OperatorType; translation: string; twoValues: boolean; } export declare const OPERATOR_OPTIONS: OperatorOption[]; export interface AbacRulesConditions { masterId: string | null; ids: string[]; entities: { [key: string]: NormalizedCondition; }; }