import { OnInit, OnDestroy, EventEmitter } from '@angular/core';
import { MJActionEntity, MJActionCategoryEntity } from '@memberjunction/core-entities';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
interface CategoryTreeNode {
    category: MJActionCategoryEntity;
    children: CategoryTreeNode[];
    level: number;
}
export declare class ActionsListViewComponent implements OnInit, OnDestroy {
    openEntityRecord: EventEmitter<{
        entityName: string;
        recordId: string;
    }>;
    isLoading: boolean;
    actions: MJActionEntity[];
    filteredActions: MJActionEntity[];
    categories: Map<string, MJActionCategoryEntity>;
    categoryTree: CategoryTreeNode[];
    categoryDescendants: Map<string, Set<string>>;
    searchTerm$: BehaviorSubject<string>;
    selectedStatus$: BehaviorSubject<string>;
    selectedType$: BehaviorSubject<string>;
    selectedCategory$: BehaviorSubject<string>;
    expandedCategories: Set<string>;
    statusOptions: {
        text: string;
        value: string;
    }[];
    typeOptions: {
        text: string;
        value: string;
    }[];
    categoryOptions: Array<{
        text: string;
        value: string;
    }>;
    private destroy$;
    constructor();
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setupFilters;
    private loadData;
    private populateCategoriesMap;
    private buildCategoryOptions;
    private buildCategoryTree;
    private buildDescendantMapping;
    private applyFilters;
    onSearchChange(searchTerm: string): void;
    onStatusFilterChange(status: string): void;
    onTypeFilterChange(type: string): void;
    onCategoryFilterChange(categoryId: string): void;
    openAction(action: MJActionEntity): void;
    getCategoryName(categoryId: string | null): string;
    getStatusColor(status: string): 'success' | 'warning' | 'error' | 'info';
    getTypeIcon(type: string): string;
    /**
     * Gets the icon class for an action
     * Falls back to type-based icon if no IconClass is set
     */
    getActionIcon(action: MJActionEntity): string;
    toggleCategoryExpanded(categoryId: string): void;
    isCategoryExpanded(categoryId: string): boolean;
    selectCategory(categoryId: string): void;
    getCategoryActionCount(categoryId: string): number;
    showCategoryTree: boolean;
    toggleCategoryTree(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ActionsListViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ActionsListViewComponent, "mj-actions-list-view", never, {}, { "openEntityRecord": "openEntityRecord"; }, never, never, false, never>;
}
export {};
//# sourceMappingURL=actions-list-view.component.d.ts.map