import type { ICondition } from '@rapiq/core'; import type { IPolicyEvaluator, PolicyEvaluationContext, PolicyEvaluationResult } from '../../evaluation'; import { AttributesPolicyEvaluator } from '../attributes'; import { IdentityPolicyEvaluator } from '../identity'; import { RealmMatchPolicyValidator } from './validator'; export declare class RealmMatchPolicyEvaluator implements IPolicyEvaluator { protected validator: RealmMatchPolicyValidator; protected identityEvaluator: IdentityPolicyEvaluator; protected attributesEvaluator: AttributesPolicyEvaluator; constructor(); requires(value: Record): string[]; /** * Condition form over the row's realm column, with the actor realm baked in * (mirrors `realmScopeMatches` / the attribute-mode match). Exactness holds for * row-shaped data where the referenced field exists (DB rows) — the object-bag * "key absent → neutral-pass" case has no SQL counterpart. Lowerable configs: * scope mode (field = single-string `attributeName`, default `realmId` — scope-mode * EVALUATION ignores `attributeName`, lowering reuses it as the column override), * and strict attribute mode with a single explicit `attributeName`. Everything * else (multi-key / default-key CONSENSUS, non-strict key expansion) is * row-shape-dependent and stays a post-check. */ toCondition(value: Record, ctx: PolicyEvaluationContext): Promise; evaluate(value: Record, ctx: PolicyEvaluationContext): Promise; } //# sourceMappingURL=evaluator.d.ts.map