import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { WindowRef } from '@progress/kendo-angular-dialog';
import { Subject, BehaviorSubject } from 'rxjs';
import { FormControl } from '@angular/forms';
import { AIPromptEntityExtended } from '@memberjunction/core-entities';
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: AIPromptEntityExtended[];
    /** 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 dialogRef;
    private cdr;
    config: PromptSelectorConfig;
    private destroy$;
    result: Subject<PromptSelectorResult | null>;
    isLoading$: BehaviorSubject<boolean>;
    prompts$: BehaviorSubject<AIPromptEntityExtended[]>;
    filteredPrompts$: BehaviorSubject<AIPromptEntityExtended[]>;
    searchControl: FormControl<string | null>;
    selectedPrompts: Set<string>;
    linkedPrompts: Set<string>;
    viewMode: 'grid' | 'list';
    constructor(dialogRef: WindowRef, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private setupSearch;
    private loadPrompts;
    private filterPrompts;
    togglePromptSelection(prompt: AIPromptEntityExtended): void;
    isPromptSelected(prompt: AIPromptEntityExtended): boolean;
    isPromptLinked(prompt: AIPromptEntityExtended): boolean;
    getSelectedPromptObjects(): AIPromptEntityExtended[];
    toggleViewMode(): void;
    getPromptStatusColor(prompt: AIPromptEntityExtended): string;
    getPromptStatusText(prompt: AIPromptEntityExtended): string;
    selectPrompts(): void;
    createNew(): void;
    cancel(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PromptSelectorDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PromptSelectorDialogComponent, "mj-prompt-selector-dialog", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=prompt-selector-dialog.component.d.ts.map