import { OnInit, OnDestroy, ChangeDetectorRef, ElementRef } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { AIAgentRunEntityExtended, AIAgentEntityExtended } from '@memberjunction/core-entities';
import { SharedService } from '@memberjunction/ng-shared';
import { TimelineItem, AIAgentRunTimelineComponent } from './ai-agent-run-timeline.component';
import { AIAgentRunFormComponent } from '../../generated/Entities/AIAgentRun/aiagentrun.form.component';
import { AIAgentRunAnalyticsComponent } from './ai-agent-run-analytics.component';
import { AIAgentRunVisualizationComponent } from './ai-agent-run-visualization.component';
import { AIAgentRunCostService, AgentRunCostMetrics } from './ai-agent-run-cost.service';
import { AIAgentRunDataHelper } from './ai-agent-run-data.service';
import * as i0 from "@angular/core";
export declare class AIAgentRunFormComponentExtended extends AIAgentRunFormComponent implements OnInit, OnDestroy {
    protected router: Router;
    private costService;
    record: AIAgentRunEntityExtended;
    private destroy$;
    activeTab: string;
    selectedTimelineItem: TimelineItem | null;
    jsonPanelExpanded: boolean;
    loading: boolean;
    error: string | null;
    analyticsLoaded: boolean;
    visualizationLoaded: boolean;
    agent: AIAgentEntityExtended | null;
    costMetrics: AgentRunCostMetrics | null;
    private _cachedParsedResult;
    private _cachedParsedStartingPayload;
    private _cachedParsedFinalPayload;
    private _cachedParsedData;
    private _allParsingComplete;
    timelineComponent?: AIAgentRunTimelineComponent;
    analyticsComponent?: AIAgentRunAnalyticsComponent;
    visualizationComponent?: AIAgentRunVisualizationComponent;
    dataHelper: AIAgentRunDataHelper;
    constructor(elementRef: ElementRef, sharedService: SharedService, router: Router, route: ActivatedRoute, cdr: ChangeDetectorRef, costService: AIAgentRunCostService);
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    private loadAgent;
    private loadCostMetrics;
    changeTab(tab: string): void;
    calculateDuration(start: Date, end?: Date | null): string;
    selectTimelineItem(item: TimelineItem): void;
    closeJsonPanel(): void;
    navigateToSubRun(runId: string): void;
    navigateToParentRun(): void;
    navigateToActionLog(logId: string): void;
    openEntityRecord(entityName: string, recordId: string | null): void;
    navigateToEntityRecord(event: {
        entityName: string;
        recordId: string;
    }): void;
    refreshData(): void;
    getStatusIcon(status: string): string;
    copyToClipboard(text: string): Promise<void>;
    onAgentRunCompleted(status: string): void;
    /**
     * Get the Result field with recursive JSON parsing applied
     */
    get parsedResult(): string;
    /**
     * Get the Starting Payload field with recursive JSON parsing applied
     */
    get parsedStartingPayload(): string;
    /**
     * Get the Final Payload (state) field with recursive JSON parsing applied
     */
    get parsedFinalPayload(): string;
    /**
     * Get the Data field with recursive JSON parsing applied
     */
    get parsedData(): string;
    /**
     * Get parsed Starting Payload as an object for deep diff
     */
    get startingPayloadObject(): any;
    /**
     * Get parsed Final Payload as an object for deep diff
     */
    get finalPayloadObject(): any;
    /**
     * Clear all cached parsed results
     */
    private clearParsedCache;
    /**
     * Parse all JSON fields at once and cache results
     */
    private parseAllFields;
    /**
     * Check if all parsing is complete - used by template
     */
    get isParsingComplete(): boolean;
    /**
     * Check if we have both payloads to show diff
     */
    get showPayloadDiff(): boolean;
    /**
     * Check if selected timeline item is a step with payload changes
     */
    get showStepPayloadDiff(): boolean;
    /**
     * Get parsed PayloadAtStart for the selected step
     */
    get stepPayloadAtStartObject(): any;
    /**
     * Get parsed PayloadAtEnd for the selected step
     */
    get stepPayloadAtEndObject(): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<AIAgentRunFormComponentExtended, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentRunFormComponentExtended, "mj-ai-agent-run-form", never, {}, {}, never, never, false, never>;
}
export declare function LoadAIAgentRunFormComponent(): void;
//# sourceMappingURL=ai-agent-run.component.d.ts.map