import { DelegationChain } from './types';
export interface ChainNode {
    id: string;
    name: string;
    type: 'user' | 'agent';
    depth: number;
    canDelegate: boolean;
    scopes: string[];
    children: ChainNode[];
}
export interface ChainVisualization {
    root: ChainNode;
    totalDepth: number;
    totalAgents: number;
    scopeHierarchy: Map<string, string[]>;
}
export declare class DelegationChainVisualizer {
    /**
     * Creates a tree structure from a delegation chain
     */
    static createVisualization(chain: DelegationChain, rootDID: string, rootName?: string): ChainVisualization;
    /**
     * Generates a text-based tree visualization
     */
    static toAsciiTree(visualization: ChainVisualization): string;
    /**
     * Generates a Mermaid diagram for the delegation chain
     */
    static toMermaidDiagram(visualization: ChainVisualization): string;
    /**
     * Generates a JSON representation suitable for D3.js or other visualization libraries
     */
    static toD3Json(visualization: ChainVisualization): object;
    /**
     * Analyzes scope reduction through the chain
     */
    static analyzeScopeReduction(chain: DelegationChain): {
        reductions: Array<{
            from: string;
            to: string;
            removed: string[];
            retained: string[];
        }>;
        totalScopeLoss: number;
    };
    private static extractRootScopes;
    private static findNodeById;
    private static buildAsciiTree;
    private static buildMermaidNodes;
    private static sanitizeId;
    private static findNodesByType;
    private static findNodesByCondition;
    private static nodeToD3Json;
}
//# sourceMappingURL=delegation-chain-visualizer.d.ts.map