/**
 * Security Policy Engine
 *
 * A flexible security policy engine for dynamic security rules.
 * Provides policy evaluation, management, and enforcement capabilities.
 *
 * Features:
 * - Dynamic policy conditions (user, request, time, risk, resource)
 * - Flexible rules (MFA, approval, block, rate-limit, encryption, audit)
 * - Configurable actions (allow, deny, challenge, notify, escalate, quarantine)
 * - JSON-based Policy DSL
 * - Fastify middleware integration
 * - Management API for CRUD operations
 * - Policy versioning and rollback
 * - Dry-run/simulation mode
 * - Break-glass override support
 *
 * @example
 * ```typescript
 * import {
 *   createSecurityPolicyEngine,
 *   enforcePolicies,
 *   builtInPolicies,
 * } from './security/policy-engine';
 *
 * // Create engine
 * const engine = createSecurityPolicyEngine({
 *   enableTracing: true,
 *   defaultDecision: 'allow',
 * });
 *
 * // Add built-in policies
 * for (const policy of builtInPolicies) {
 *   engine.addPolicy(policy);
 * }
 *
 * // Use with Fastify
 * const { middleware } = enforcePolicies({ engine });
 * fastify.addHook('preHandler', middleware);
 *
 * // Or use the plugin
 * import { policyEnginePluginFp } from './security/policy-engine';
 * fastify.register(policyEnginePluginFp, {
 *   engine,
 *   enableManagementApi: true,
 * });
 * ```
 *
 * @packageDocumentation
 */
export { ConditionOperator, LogicalOperator, ConditionType, PolicyRuleType, PolicyActionType, DecisionOutcome, securityPolicySchema, policyConditionSchema, policyRuleSchema, policyActionSchema, policyContextSchema, } from './types.js';
export type { PolicyCondition, UserAttributeCondition, RequestAttributeCondition, TimeBasedCondition, RiskBasedCondition, ResourceAttributeCondition, CompositeCondition, CustomCondition, PolicyRule, MFARule, ApprovalRule, BlockAccessRule, RateLimitRule, EncryptionRule, AuditLogRule, StepUpAuthRule, DataMaskingRule, SessionTimeoutRule, GeoRestrictionRule, CustomRule, PolicyAction, AllowAction, DenyAction, ChallengeAction, NotifyAction, LogAction, EscalateAction, QuarantineAction, RedirectAction, ModifyAction, SecurityPolicy, PolicyContext, PolicyContextUser, PolicyContextRequest, PolicyContextResource, PolicyContextRisk, PolicyContextEnvironment, PolicyDecision, PolicyEvaluationResult, ConditionEvaluationResult, RuleEvaluationResult, PolicyVersionRecord, PolicySimulationRequest, PolicySimulationResult, PolicyValidationResult, PolicyValidationError, } from './types.js';
export { SecurityPolicyEngine, createSecurityPolicyEngine, type SecurityPolicyEngineOptions, type PolicyUpdateListener, type BreakGlassValidator, } from './engine.js';
export { ConditionEvaluator, createConditionEvaluator, type ConditionEvaluatorOptions, type CustomExpressionEvaluator, } from './condition-evaluator.js';
export { RuleEvaluator, createRuleEvaluator, type RuleEvaluatorOptions, type RateLimiter, type GeoLocationProvider, type CustomRuleHandler, } from './rule-evaluator.js';
export { createPolicyMiddleware, enforcePolicies, policyEnginePluginFp, type PolicyMiddlewareOptions, } from './middleware.js';
export { builtInPolicies, getBuiltInPoliciesByTag, getBuiltInPolicyIds, requireMfaForAdminPolicy, blockHighRiskIpsPolicy, requireApprovalForBulkExportPolicy, enhancedLoggingForSensitiveResourcesPolicy, rateLimitByRiskScorePolicy, mfaOutsideBusinessHoursPolicy, blockCriticalThreatsPolicy, geoRestrictSensitiveOperationsPolicy, sessionSecurityHighRiskUsersPolicy, dataMaskingForPiiPolicy, } from './built-in-policies.js';
export { SecurityPolicyEngineAdapter, createSecurityPolicyEngineAdapter, } from './atsf-adapter.js';
//# sourceMappingURL=index.d.ts.map