import { OnInit, OnDestroy, ChangeDetectorRef, EventEmitter } from '@angular/core';
import { Subject, BehaviorSubject } from 'rxjs';
import { FormControl } from '@angular/forms';
import { MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';
import * as i0 from "@angular/core";
export interface PromptSelectorConfig {
    /** Title for the dialog */
    title: string;
    /** Whether to show the "Create New" option */
    showCreateNew?: boolean;
    /** Filter criteria for prompts */
    extraFilter?: string;
    /** Allow multiple selection */
    multiSelect?: boolean;
    /** Pre-selected prompt IDs */
    selectedPromptIds?: string[];
    /** Already linked prompt IDs (will be grayed out and not selectable) */
    linkedPromptIds?: string[];
}
export interface PromptSelectorResult {
    /** Selected prompts */
    selectedPrompts: MJAIPromptEntityExtended[];
    /** Whether user chose to create new */
    createNew?: boolean;
}
/**
 * Unified prompt selector dialog that can be used for:
 * - Selecting context compression prompts (single select)
 * - Adding general prompts to agents (multi-select)
 * - Any other prompt selection scenario
 */
export declare class PromptSelectorDialogComponent implements OnInit, OnDestroy {
    private cdr;
    config: PromptSelectorConfig;
    private destroy$;
    result: Subject<PromptSelectorResult | null>;
    isLoading$: BehaviorSubject<boolean>;
    prompts$: BehaviorSubject<MJAIPromptEntityExtended[]>;
    filteredPrompts$: BehaviorSubject<MJAIPromptEntityExtended[]>;
    searchControl: FormControl<string | null>;
    selectedPrompts: Set<string>;
    linkedPrompts: Set<string>;
    viewMode: 'grid' | 'list';
    DialogClose: EventEmitter<void>;
    constructor(cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setupSearch;
    private loadPrompts;
    private filterPrompts;
    togglePromptSelection(prompt: MJAIPromptEntityExtended): void;
    isPromptSelected(prompt: MJAIPromptEntityExtended): boolean;
    isPromptLinked(prompt: MJAIPromptEntityExtended): boolean;
    getSelectedPromptObjects(): MJAIPromptEntityExtended[];
    toggleViewMode(): void;
    getPromptStatusColor(prompt: MJAIPromptEntityExtended): string;
    getPromptStatusText(prompt: MJAIPromptEntityExtended): string;
    selectPrompts(): void;
    createNew(): void;
    cancel(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PromptSelectorDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PromptSelectorDialogComponent, "mj-prompt-selector-dialog", never, {}, { "DialogClose": "DialogClose"; }, never, never, false, never>;
}
//# sourceMappingURL=prompt-selector-dialog.component.d.ts.map