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 { MJAIAgentTypeEntity } from '@memberjunction/core-entities';
import { MJAIAgentEntityExtended } from "@memberjunction/ai-core-plus";
import * as i0 from "@angular/core";
export interface SubAgentSelectorResult {
    selectedAgents: MJAIAgentEntityExtended[];
    createNew: boolean;
}
export interface SubAgentSelectorConfig {
    title: string;
    multiSelect: boolean;
    selectedAgentIds: string[];
    showCreateNew: boolean;
    parentAgentId: string;
}
export interface AgentDisplayItem extends MJAIAgentEntityExtended {
    selected: boolean;
    typeName?: string;
}
/**
 * Sub-Agent Selector Dialog for selecting agents to convert to sub-agents.
 * Only shows agents with NULL ParentID (root agents) that can become sub-agents.
 */
export declare class SubAgentSelectorDialogComponent implements OnInit, OnDestroy {
    private dialogRef;
    private cdr;
    config: SubAgentSelectorConfig;
    private destroy$;
    result: Subject<SubAgentSelectorResult | null>;
    allAgents$: BehaviorSubject<AgentDisplayItem[]>;
    agentTypes$: BehaviorSubject<MJAIAgentTypeEntity[]>;
    filteredAgents$: BehaviorSubject<AgentDisplayItem[]>;
    selectedAgents$: BehaviorSubject<Set<string>>;
    isLoading$: BehaviorSubject<boolean>;
    searchControl: FormControl<string | null>;
    selectedTypeId$: BehaviorSubject<string>;
    get selectedCount(): number;
    get totalAgentCount(): number;
    get filteredCount(): number;
    constructor(dialogRef: WindowRef, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private initializeData;
    private loadAgentsAndTypes;
    private setupFiltering;
    private filterAgents;
    private preselectExistingAgents;
    selectType(typeId: string): void;
    toggleAgentSelection(agent: AgentDisplayItem): void;
    clearSearch(): void;
    getAgentIcon(agent: AgentDisplayItem): string;
    getAgentStatusColor(agent: AgentDisplayItem): string;
    cancel(): void;
    createNew(): void;
    addSelectedAgents(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SubAgentSelectorDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SubAgentSelectorDialogComponent, "mj-sub-agent-selector-dialog", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=sub-agent-selector-dialog.component.d.ts.map