import { EventEmitter, OnInit, OnDestroy, ElementRef, AfterViewInit } from '@angular/core';
import { MJAIAgentEntityExtended } from '@memberjunction/ai-core-plus';
import { CreateAgentService } from '@memberjunction/ng-agents';
import { NavigationService } from '@memberjunction/ng-shared';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import * as i0 from "@angular/core";
interface AgentHierarchyNode {
    id: string;
    name: string;
    agent: MJAIAgentEntityExtended;
    children?: AgentHierarchyNode[];
    parent?: AgentHierarchyNode;
    x?: number;
    y?: number;
}
interface AgentPrompt {
    id: string;
    name: string;
    content: string;
    type: string;
}
export declare class AgentEditorComponent extends BaseAngularComponent implements OnInit, OnDestroy, AfterViewInit {
    private navigationService;
    private createAgentService;
    agentId: string | null;
    close: EventEmitter<void>;
    openAgent: EventEmitter<string>;
    openEntityRecord: EventEmitter<{
        entityName: string;
        recordId: string;
    }>;
    hierarchyChartRef: ElementRef;
    isLoading: boolean;
    error: string | null;
    currentAgent: MJAIAgentEntityExtended | null;
    allAgents: MJAIAgentEntityExtended[];
    hierarchyData: AgentHierarchyNode | null;
    selectedNode: AgentHierarchyNode | null;
    agentPrompts: AgentPrompt[];
    activeTab: 'hierarchy' | 'prompts' | 'properties';
    showHierarchy: boolean;
    showPrompts: boolean;
    showProperties: boolean;
    private svg;
    private g;
    private tree;
    private root;
    private zoom;
    constructor(navigationService: NavigationService, createAgentService: CreateAgentService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    loadAgentData(): Promise<void>;
    private buildHierarchy;
    private findRootAgent;
    private buildHierarchyTree;
    private findNodeInHierarchy;
    private loadAgentPrompts;
    private initializeChart;
    private renderHierarchy;
    private getTreeBounds;
    private getNodeColor;
    private getNodeStrokeColor;
    private lightenColor;
    onNodeClick(node: AgentHierarchyNode): void;
    zoomIn(): void;
    zoomOut(): void;
    resetZoom(): void;
    navigateToAgent(agentId: string): void;
    closeEditor(): void;
    setActiveTab(tab: 'hierarchy' | 'prompts' | 'properties'): void;
    getExecutionModeColor(mode: string): string;
    getExecutionModeIcon(mode: string): string;
    /**
     * Opens the create sub-agent slide-in panel using the new CreateAgentService.
     * After successful creation, saves the agent and navigates to it.
     */
    openCreateSubAgent(): void;
    /**
     * Handles the result from the create agent slide-in.
     * Saves the agent and navigates to the new record.
     */
    private handleAgentCreated;
    hasChildren(): boolean;
    hasParent(): boolean;
    getChildCount(): number;
    openCurrentAgentRecord(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AgentEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AgentEditorComponent, "mj-agent-editor", never, { "agentId": { "alias": "agentId"; "required": false; }; }, { "close": "close"; "openAgent": "openAgent"; "openEntityRecord": "openEntityRecord"; }, never, never, false, never>;
}
export {};
//# sourceMappingURL=agent-editor.component.d.ts.map