import { AgentIdentity, AgentDelegationOptions, ScopeReductionPolicy, ExpirationPolicy, DelegationContext } from './types'; import { AgentIdentityManager } from './agent-identity'; export interface DelegationPolicy { id: string; name: string; description: string; maxDepth: number; scopeReduction: ScopeReductionPolicy; expirationPolicy: ExpirationPolicy; constraints?: DelegationConstraints; enabled: boolean; } export interface DelegationConstraints { allowedServices?: string[]; deniedServices?: string[]; maxScopes?: number; requiredScopes?: string[]; timeOfDayRestrictions?: TimeRestriction[]; ipWhitelist?: string[]; customConstraints?: Array<(context: DelegationContext) => boolean>; } export interface TimeRestriction { startHour: number; endHour: number; timezone: string; daysOfWeek?: number[]; } export interface PolicyEvaluationResult { allowed: boolean; policy?: DelegationPolicy; violations: string[]; warnings: string[]; appliedConstraints: string[]; } export declare class DelegationPolicyEngine { private agentManager; private policies; private globalMaxDepth; private defaultPolicy; constructor(agentManager: AgentIdentityManager); /** * Sets the global maximum delegation depth */ setGlobalMaxDepth(depth: number): void; /** * Registers a delegation policy */ registerPolicy(policy: DelegationPolicy): void; /** * Evaluates whether a delegation is allowed based on policies */ evaluatePolicy(context: DelegationContext, policyId?: string): Promise; /** * Creates a delegation options object based on policy */ createDelegationOptions(policy: DelegationPolicy, parentAgent: AgentIdentity): AgentDelegationOptions; /** * Applies expiration policy to determine credential expiration */ calculateExpiration(policy: DelegationPolicy, parentExpiration: Date): Date; /** * Validates that a delegation request complies with all policies */ validateDelegationRequest(parentAgentDID: string, requestedScopes: string[], serviceDID?: string): Promise<{ valid: boolean; errors: string[]; maxDepth?: number; }>; private createDefaultPolicy; private initializeBuiltInPolicies; private findApplicablePolicy; private getParentScopes; private evaluateConstraints; private isTimeAllowed; /** * Exports all registered policies */ exportPolicies(): DelegationPolicy[]; /** * Imports policies from an array */ importPolicies(policies: DelegationPolicy[]): void; /** * Gets a specific policy by ID */ getPolicy(policyId: string): DelegationPolicy | undefined; /** * Updates an existing policy */ updatePolicy(policyId: string, updates: Partial): void; /** * Enables or disables a policy */ setPolicyEnabled(policyId: string, enabled: boolean): void; } //# sourceMappingURL=delegation-policy-engine.d.ts.map