import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { FormControl } from '@angular/forms';
import { WindowRef } from '@progress/kendo-angular-dialog';
import { Subject, BehaviorSubject } from 'rxjs';
import { ActionEntity, ActionCategoryEntity } 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 ActionEntity {
    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 dialogRef;
    private cdr;
    agentId: string;
    agentName: string;
    existingActionIds: string[];
    private destroy$;
    result: Subject<ActionEntity[]>;
    allActions$: BehaviorSubject<ActionDisplayItem[]>;
    categories$: BehaviorSubject<ActionCategoryEntity[]>;
    filteredActions$: BehaviorSubject<ActionDisplayItem[]>;
    categoryTree$: BehaviorSubject<CategoryTreeNode[]>;
    selectedActions$: BehaviorSubject<Set<string>>;
    isLoading$: BehaviorSubject<boolean>;
    searchControl: FormControl<string | null>;
    selectedCategoryId$: BehaviorSubject<string>;
    viewMode$: BehaviorSubject<"grid" | "list">;
    expandedCategories: Set<string>;
    get selectedCount(): number;
    get totalActionCount(): number;
    get filteredCount(): number;
    constructor(dialogRef: WindowRef, 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, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=add-action-dialog.component.d.ts.map