import { DelegationCredential, AccessGrant, AgentIdentity } from './types';
import { KeyPair } from '../types/index';
export interface DelegationMetadata {
    issuerAgent?: AgentIdentity;
    delegationDepth?: number;
    maxDelegationDepth?: number;
    canDelegate?: boolean;
}
export declare class DelegationManager {
    createDelegationCredential(issuerDID: string, issuerKeyPair: KeyPair, agentDID: string, agentName: string, grant: AccessGrant, metadata?: DelegationMetadata): Promise<DelegationCredential>;
    createProof(credential: DelegationCredential, issuerDID: string, keyPair: KeyPair): Promise<any>;
    validateDelegation(credential: DelegationCredential): boolean;
    extractScopes(credential: DelegationCredential, serviceDID: string): string[];
    hasScope(credential: DelegationCredential, serviceDID: string, scope: string): boolean;
    canAgentDelegate(credential: DelegationCredential): boolean;
    validateAgentDelegation(parentCredential: DelegationCredential, childScopes: string[], serviceDID: string): {
        valid: boolean;
        reason?: string;
    };
}
//# sourceMappingURL=delegation-manager.d.ts.map