/** * PolicyEvaluator - Handles core policy evaluation logic * * Responsibilities: * - Evaluate policies and conditions * - Check policy applicability * - Resolve values and attribute references * - Collect obligations and advice * - Coordinate with FunctionRegistry and AttributeResolver */ import { ILogger } from '../../logger'; import { FunctionRegistry } from '../services/FunctionRegistry'; import { ABACPolicy, ABACRequest, Advice, AttributeReference, AttributeValue, Condition, Obligation, PolicyResult } from '../types'; import { AttributeResolver } from './AttributeResolver'; export declare class PolicyEvaluator { private logger; private functionRegistry; private attributeResolver; constructor(logger: ILogger, functionRegistry: FunctionRegistry, attributeResolver: AttributeResolver); /** * Find applicable policies for the request */ findApplicablePolicies(request: ABACRequest, policies: ABACPolicy[]): Promise; /** * Check if a policy is applicable to the request */ isPolicyApplicable(request: ABACRequest, policy: ABACPolicy): Promise; /** * Evaluate applicable policies */ evaluatePolicies(request: ABACRequest, policies: ABACPolicy[], errors?: string[]): Promise; /** * Evaluate a single policy */ evaluatePolicy(request: ABACRequest, policy: ABACPolicy): Promise; /** * Evaluate a condition */ evaluateCondition(condition: Condition, request: ABACRequest): Promise; /** * Evaluate logical condition (and, or, not) */ private evaluateLogicalCondition; /** * Evaluate comparison condition */ private evaluateComparisonCondition; /** * Evaluate function condition */ private evaluateFunctionCondition; /** * Resolve a value (could be a literal value or attribute reference) */ resolveValue(value: AttributeReference | AttributeValue | Condition, request: ABACRequest): Promise; /** * Collect obligations from policy results */ collectObligations(results: PolicyResult[]): Obligation[]; /** * Collect advice from policy results */ collectAdvice(results: PolicyResult[]): Advice[]; } //# sourceMappingURL=PolicyEvaluator.d.ts.map