import type { BlockedIntent, ImmutableInstruction, ProtectedRole, SensitiveScope } from '../types.js'; /** * RoleProtectionConfig - configuración de protección de roles */ export type RoleProtectionConfig = { readonly protectedRoles: readonly ProtectedRole[]; readonly immutableInstructions: readonly ImmutableInstruction[]; }; /** * ContextLeakPreventionConfig - configuración de prevención de fuga de contexto */ export type ContextLeakPreventionConfig = { readonly enabled: boolean; readonly blockMetadataExposure: boolean; readonly sanitizeInternalReferences: boolean; }; /** * PolicyRule - tipo puro */ export type PolicyRule = { readonly version: string; readonly blockedIntents: readonly BlockedIntent[]; readonly sensitiveScope: readonly SensitiveScope[]; readonly roleProtection: RoleProtectionConfig; readonly contextLeakPrevention: ContextLeakPreventionConfig; }; /** * Crea un PolicyRule - función pura */ export declare function createPolicyRule(version: string, blockedIntents: readonly BlockedIntent[], sensitiveScope: readonly SensitiveScope[], roleProtection: RoleProtectionConfig, contextLeakPrevention: ContextLeakPreventionConfig): PolicyRule; /** * Funciones puras para PolicyRule */ export declare function isIntentBlocked(policy: PolicyRule, intent: string): boolean; export declare function isScopeSensitive(policy: PolicyRule, scope: string): boolean; export declare function isRoleProtected(policy: PolicyRule, role: string): boolean; export declare function isInstructionImmutable(policy: PolicyRule, instruction: string): boolean; export declare function isContextLeakPreventionEnabled(policy: PolicyRule): boolean; //# sourceMappingURL=PolicyRule.d.ts.map