import { OnInit, ChangeDetectorRef, ElementRef } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { ActionEntity, ActionParamEntity, ActionResultCodeEntity, ActionCategoryEntity, ActionExecutionLogEntity, ActionLibraryEntity, LibraryEntity } from '@memberjunction/core-entities';
import { SharedService } from '@memberjunction/ng-shared';
import { ActionFormComponent } from '../../generated/Entities/Action/action.form.component';
import * as i0 from "@angular/core";
export declare class ActionFormComponentExtended extends ActionFormComponent implements OnInit {
    cdr: ChangeDetectorRef;
    record: ActionEntity;
    category: ActionCategoryEntity | null;
    actionParams: ActionParamEntity[];
    resultCodes: ActionResultCodeEntity[];
    recentExecutions: ActionExecutionLogEntity[];
    actionLibraries: ActionLibraryEntity[];
    libraries: LibraryEntity[];
    private _inputParams;
    private _outputParams;
    private paramsToDelete;
    private resultCodesToDelete;
    isLoadingParams: boolean;
    isLoadingResultCodes: boolean;
    isLoadingExecutions: boolean;
    isLoadingLibraries: boolean;
    expandedSections: {
        overview: boolean;
        code: boolean;
        params: boolean;
        resultCodes: boolean;
        execution: boolean;
        configuration: boolean;
    };
    showTestHarness: boolean;
    executionStats: {
        totalRuns: number;
        successRate: number;
        avgDuration: number;
        lastRun: Date | null;
    };
    codeLanguage: string;
    showCodeComments: boolean;
    private dialogService;
    private viewContainerRef;
    constructor(elementRef: ElementRef, sharedService: SharedService, router: Router, route: ActivatedRoute, cdr: ChangeDetectorRef);
    ngOnInit(): Promise<void>;
    /**
     * Override InternalSaveRecord to handle Action and related ActionParams in a transaction
     * This follows the same pattern as AIAgentFormComponent
     */
    protected InternalSaveRecord(): Promise<boolean>;
    private loadCategory;
    private loadActionParams;
    private loadResultCodes;
    private loadRecentExecutions;
    private loadActionLibraries;
    private loadExecutionStats;
    getStatusColor(): string;
    getStatusIcon(): string;
    getTypeColor(): string;
    getTypeIcon(): string;
    getApprovalStatusColor(): string;
    getApprovalStatusIcon(): string;
    getParamTypeIcon(type: string): string;
    getParamTypeColor(type: string): string;
    formatDuration(ms: number): string;
    formatDate(date: Date | string | null): string;
    navigateToEntity(entityName: string, recordId: string | null): void;
    navigateToCategory(): void;
    navigateToExecution(executionId: string): void;
    navigateToLibrary(libraryId: string): void;
    openTestHarness(): void;
    /**
     * Event handler for test harness visibility changes
     */
    onTestHarnessVisibilityChanged(isVisible: boolean): void;
    regenerateCode(): Promise<void>;
    toggleCodeComments(): void;
    approveCode(): Promise<void>;
    rejectCode(): Promise<void>;
    copyToClipboard(text: string): Promise<void>;
    getInputParams(): ActionParamEntity[];
    getOutputParams(): ActionParamEntity[];
    isExecutionSuccess(execution: ActionExecutionLogEntity): boolean;
    getExecutionDuration(execution: ActionExecutionLogEntity): number;
    getSuccessRateColor(): string;
    addParameter(type: 'Input' | 'Output' | 'Both'): Promise<void>;
    editParameter(param: ActionParamEntity): Promise<void>;
    onParamClick(param: ActionParamEntity, event: Event): void;
    private updateParamArrays;
    protected PopulatePendingRecords(): void;
    /**
     * Gets the action's display icon
     * Falls back to default cog icon if no IconClass is set
     */
    getActionIcon(): string;
    addResultCode(): Promise<void>;
    editResultCode(resultCode: ActionResultCodeEntity): Promise<void>;
    onResultCodeClick(resultCode: ActionResultCodeEntity, event: Event): void;
    /**
     * Delete a result code (marks for deletion on save)
     */
    deleteResultCode(resultCode: ActionResultCodeEntity): void;
    /**
     * Delete a parameter (marks for deletion on save)
     */
    deleteParameter(param: ActionParamEntity): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ActionFormComponentExtended, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ActionFormComponentExtended, "mj-action-form", never, {}, {}, never, never, false, never>;
}
export declare function LoadActionFormComponentExtended(): void;
//# sourceMappingURL=action-form.component.d.ts.map