import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { MJActionExecutionLogEntity, MJActionEntity, ResourceData } from '@memberjunction/core-entities';
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
interface ExecutionMetrics {
    totalExecutions: number;
    successfulExecutions: number;
    failedExecutions: number;
    averageDuration: number;
    executionsToday: number;
    executionsThisWeek: number;
    currentlyRunning: number;
}
interface ExecutionTrend {
    date: string;
    successful: number;
    failed: number;
    total: number;
}
/**
 * Execution Monitoring Resource - displays action execution logs and metrics
 */
export declare class ExecutionMonitoringComponent extends BaseResourceComponent implements OnInit, OnDestroy {
    private navigationService;
    private cdr;
    isLoading: boolean;
    executions: MJActionExecutionLogEntity[];
    filteredExecutions: MJActionExecutionLogEntity[];
    actions: Map<string, MJActionEntity>;
    metrics: ExecutionMetrics;
    executionTrends: ExecutionTrend[];
    searchTerm$: BehaviorSubject<string>;
    selectedResult$: BehaviorSubject<string>;
    selectedTimeRange$: BehaviorSubject<string>;
    selectedAction$: BehaviorSubject<string>;
    timeRangeOptions: {
        text: string;
        value: string;
    }[];
    resultOptions: {
        text: string;
        value: string;
    }[];
    actionOptions: Array<{
        text: string;
        value: string;
    }>;
    private destroy$;
    constructor(navigationService: NavigationService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setupFilters;
    private loadData;
    private populateActionsMap;
    private buildActionOptions;
    private calculateMetrics;
    private calculateAverageDuration;
    private generateExecutionTrends;
    private applyFilters;
    private getTimeRangeCutoff;
    onSearchChange(searchTerm: string): void;
    onResultFilterChange(result: string): void;
    onTimeRangeChange(timeRange: string): void;
    onActionFilterChange(actionId: string): void;
    openExecution(execution: MJActionExecutionLogEntity): void;
    openAction(actionId: string): void;
    getActionName(actionId: string): string;
    getResultColor(resultCode: string | null): 'success' | 'warning' | 'error' | 'info';
    getResultIcon(resultCode: string | null): string;
    getDuration(execution: MJActionExecutionLogEntity): string;
    getSuccessRate(): number;
    refreshData(): void;
    onTotalExecutionsClick(): void;
    onSuccessRateClick(): void;
    onFailedExecutionsClick(): void;
    onRunningExecutionsClick(): void;
    GetResourceDisplayName(data: ResourceData): Promise<string>;
    GetResourceIconClass(data: ResourceData): Promise<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ExecutionMonitoringComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ExecutionMonitoringComponent, "mj-execution-monitoring", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=execution-monitoring.component.d.ts.map