import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { MJActionEntity, MJActionCategoryEntity, MJActionExecutionLogEntity, ResourceData } from '@memberjunction/core-entities';
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
interface ActionMetrics {
    totalActions: number;
    activeActions: number;
    pendingActions: number;
    disabledActions: number;
    totalExecutions: number;
    recentExecutions: number;
    successRate: number;
    totalCategories: number;
    aiGeneratedActions: number;
    customActions: number;
}
interface CategoryStats {
    categoryId: string;
    categoryName: string;
    actionCount: number;
    executionCount: number;
    successRate: number;
}
interface ExecutionWithExpanded extends MJActionExecutionLogEntity {
    isExpanded?: boolean;
}
/**
 * Actions Overview Resource - displays action management dashboard
 */
export declare class ActionsOverviewComponent extends BaseResourceComponent implements OnInit, OnDestroy {
    private navigationService;
    private cdr;
    isLoading: boolean;
    metrics: ActionMetrics;
    categoryStats: CategoryStats[];
    recentActions: MJActionEntity[];
    recentExecutions: ExecutionWithExpanded[];
    topCategories: MJActionCategoryEntity[];
    searchTerm$: BehaviorSubject<string>;
    selectedStatus$: BehaviorSubject<string>;
    selectedType$: BehaviorSubject<string>;
    private destroy$;
    constructor(navigationService: NavigationService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setupFilters;
    private loadData;
    private calculateMetrics;
    private calculateSuccessRate;
    private calculateCategoryStats;
    private loadFilteredData;
    onSearchChange(searchTerm: string): void;
    onStatusFilterChange(status: string): void;
    onTypeFilterChange(type: string): void;
    openAction(action: MJActionEntity): void;
    openCategory(categoryId: string): void;
    openExecution(execution: MJActionExecutionLogEntity): void;
    isExecutionSuccess(execution: MJActionExecutionLogEntity): boolean;
    getStatusColor(status: string): 'success' | 'warning' | 'error' | 'info';
    getTypeIcon(type: string): string;
    onTotalActionsClick(): void;
    onExecutionsClick(): void;
    onCategoriesClick(): void;
    onAIGeneratedClick(): void;
    onActionGalleryClick(): void;
    toggleExecutionExpanded(execution: ExecutionWithExpanded): void;
    formatJsonParams(params: string | null): string;
    /**
     * Gets the icon class for an action
     * Falls back to type-based icon if no IconClass is set
     */
    getActionIcon(action: MJActionEntity): string;
    GetResourceDisplayName(data: ResourceData): Promise<string>;
    GetResourceIconClass(data: ResourceData): Promise<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ActionsOverviewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ActionsOverviewComponent, "mj-actions-overview", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=actions-overview.component.d.ts.map