import { OnInit, OnDestroy, ChangeDetectorRef, EventEmitter } from '@angular/core';
import { FormControl } from '@angular/forms';
import { Subject, BehaviorSubject } from 'rxjs';
import { MJActionEntity, MJActionCategoryEntity } from '@memberjunction/core-entities';
import * as i0 from "@angular/core";
export interface CategoryTreeNode {
    id: string;
    name: string;
    count: number;
    icon: string;
    children?: CategoryTreeNode[];
    expanded?: boolean;
}
export interface ActionDisplayItem extends MJActionEntity {
    selected: boolean;
    categoryName?: string;
}
/**
 * Modern, clean dialog for selecting actions to add to an AI Agent.
 * Features searchable action list, category filtering, and multi-select capability.
 */
export declare class AddActionDialogComponent implements OnInit, OnDestroy {
    private cdr;
    agentId: string;
    agentName: string;
    existingActionIds: string[];
    private destroy$;
    result: Subject<MJActionEntity[]>;
    allActions$: BehaviorSubject<ActionDisplayItem[]>;
    categories$: BehaviorSubject<MJActionCategoryEntity[]>;
    filteredActions$: BehaviorSubject<ActionDisplayItem[]>;
    categoryTree$: BehaviorSubject<CategoryTreeNode[]>;
    selectedActions$: BehaviorSubject<Set<string>>;
    isLoading$: BehaviorSubject<boolean>;
    searchControl: FormControl<string | null>;
    selectedCategoryId$: BehaviorSubject<string>;
    viewMode$: BehaviorSubject<"list" | "grid">;
    expandedCategories: Set<string>;
    get selectedCount(): number;
    get totalActionCount(): number;
    get filteredCount(): number;
    DialogClose: EventEmitter<void>;
    constructor(cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private initializeData;
    private loadActionsAndCategories;
    private buildCategoryTree;
    private getCategoryIcon;
    private setupFiltering;
    private filterActions;
    private getCategoryNameById;
    private preselectExistingActions;
    selectCategory(categoryId: string): void;
    toggleViewMode(): void;
    toggleActionSelection(action: ActionDisplayItem): void;
    clearSearch(): void;
    getActionIcon(action: ActionDisplayItem): string;
    cancel(): void;
    addSelectedActions(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddActionDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddActionDialogComponent, "mj-add-action-dialog", never, {}, { "DialogClose": "DialogClose"; }, never, never, false, never>;
}
//# sourceMappingURL=add-action-dialog.component.d.ts.map