import type { ProofMeta } from "@kya-os/mcp/types" with { "resolution-mode": "import" }; import { DelegationManager } from "../storage/delegation"; /** * Runtime hooks for delegation support */ export interface DelegationHooks { /** * Called before proof generation to attach delegation context */ beforeProof?: (meta: Partial) => Promise>; /** * Called after proof generation to validate delegation */ afterProof?: (meta: ProofMeta) => Promise; /** * Called to resolve delegation reference for a request */ resolveDelegation?: (context: RequestContext) => Promise; } export interface RequestContext { audience: string; scopes?: string[]; sessionId: string; did: string; kid: string; } /** * Default delegation hooks implementation */ export declare class DefaultDelegationHooks implements DelegationHooks { private delegationManager; private options; constructor(delegationManager: DelegationManager, options?: DelegationHookOptions); beforeProof(meta: Partial): Promise>; afterProof(meta: ProofMeta): Promise; resolveDelegation(context: RequestContext): Promise; } export interface DelegationHookOptions { /** * Automatically resolve delegation references for requests */ autoResolveDelegation?: boolean; /** * Require delegation for all requests */ requireDelegation?: boolean; /** * Default delegation duration in seconds */ defaultDuration?: number; } /** * Create delegation hooks instance */ export declare function createDelegationHooks(delegationManager: DelegationManager, options?: DelegationHookOptions): DelegationHooks; /** * Delegation middleware for runtime integration */ export declare class DelegationMiddleware { private hooks; private options; constructor(hooks: DelegationHooks, options?: DelegationMiddlewareOptions); /** * Process request and attach delegation context */ processRequest(meta: Partial, context: RequestContext): Promise>; /** * Validate proof after generation */ validateProof(meta: ProofMeta): Promise; } export interface DelegationMiddlewareOptions { /** * Require delegation for all requests */ requireDelegation?: boolean; /** * Skip delegation validation in test mode */ skipValidationInTest?: boolean; } /** * Create delegation middleware instance */ export declare function createDelegationMiddleware(hooks: DelegationHooks, options?: DelegationMiddlewareOptions): DelegationMiddleware;