import { TrustLevel } from '../domain/entities/trust-level.js'; import { type PIIAction, type PIIDetection, type PIIPolicyConfig } from '../domain/services/pii-pipeline-service.js'; import { type FederationMessageType } from '../domain/entities/federation-envelope.js'; export type FederationClaimType = 'federation:discover' | 'federation:connect' | 'federation:read' | 'federation:write' | 'federation:admin' | 'federation:memory' | 'federation:spawn'; export interface SecurityPolicy { readonly maxMessageSizeBytes: number; readonly maxMessagesPerMinute: number; readonly allowedMessageTypes: readonly FederationMessageType[]; readonly requirePiiScan: boolean; readonly requireAiDefenceScan: boolean; readonly minTrustLevelForWrite: TrustLevel; readonly minTrustLevelForMemory: TrustLevel; readonly minTrustLevelForSpawn: TrustLevel; } export interface PolicyEvaluationResult { readonly allowed: boolean; readonly reason: string; readonly requiredClaims: readonly FederationClaimType[]; readonly trustLevelSufficient: boolean; readonly piiAction?: PIIAction; } export interface PolicyEngineDeps { checkClaim: (claim: FederationClaimType) => boolean; } export declare class PolicyEngine { private readonly deps; private readonly securityPolicy; private readonly piiPolicy; private readonly rateLimitCounters; constructor(deps: PolicyEngineDeps, securityPolicy?: Partial, piiPolicy?: PIIPolicyConfig); evaluateMessage(messageType: FederationMessageType, trustLevel: TrustLevel, messageSizeBytes: number, sourceNodeId: string): PolicyEvaluationResult; evaluatePiiDetection(detection: PIIDetection, trustLevel: TrustLevel): PIIAction; evaluateTrustChange(currentLevel: TrustLevel, proposedLevel: TrustLevel): { allowed: boolean; requiresHumanApproval: boolean; reason: string; }; private checkRateLimit; private getOperationForMessageType; } //# sourceMappingURL=policy-engine.d.ts.map