import { EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { MJActionCategoryEntity } from '@memberjunction/core-entities';
import { ActionExplorerStateService } from '../../services/action-explorer-state.service';
import { MJActionEntityExtended } from '@memberjunction/actions-base';
import * as i0 from "@angular/core";
export interface CategoryTreeNode {
    category: MJActionCategoryEntity;
    children: CategoryTreeNode[];
    level: number;
    actionCount: number;
    totalActionCount: number;
}
export declare class ActionTreePanelComponent implements OnInit, OnDestroy {
    StateService: ActionExplorerStateService;
    private cdr;
    Categories: MJActionCategoryEntity[];
    Actions: MJActionEntityExtended[];
    CategorySelected: EventEmitter<string>;
    NewCategoryClick: EventEmitter<string | null>;
    EditCategoryClick: EventEmitter<MJActionCategoryEntity>;
    CategoryTree: CategoryTreeNode[];
    SelectedCategoryId: string;
    ExpandedCategories: Set<string>;
    TreeWidth: number;
    IsCollapsed: boolean;
    IsResizing: boolean;
    SearchTerm: string;
    FilteredTree: CategoryTreeNode[];
    private destroy$;
    private categoryParentMap;
    private categoryDescendants;
    constructor(StateService: ActionExplorerStateService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private subscribeToState;
    buildCategoryTree(): void;
    private filterTree;
    onSearchChange(term: string): void;
    getTotalActionCount(): number;
    getUncategorizedCount(): number;
    selectCategory(categoryId: string): void;
    toggleExpanded(categoryId: string, event: MouseEvent): void;
    isExpanded(categoryId: string): boolean;
    isSelected(categoryId: string): boolean;
    toggleCollapse(): void;
    onNewCategory(parentId: string | null, event: MouseEvent): void;
    onEditCategory(category: MJActionCategoryEntity, event: MouseEvent): void;
    expandAll(): void;
    collapseAll(): void;
    onResizeStart(event: MouseEvent): void;
    onMouseMove(event: MouseEvent): void;
    onMouseUp(): void;
    getCategoryDescendants(categoryId: string): Set<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ActionTreePanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ActionTreePanelComponent, "mj-action-tree-panel", never, { "Categories": { "alias": "Categories"; "required": false; }; "Actions": { "alias": "Actions"; "required": false; }; }, { "CategorySelected": "CategorySelected"; "NewCategoryClick": "NewCategoryClick"; "EditCategoryClick": "EditCategoryClick"; }, never, never, false, never>;
}
//# sourceMappingURL=action-tree-panel.component.d.ts.map