import { OnInit, ChangeDetectorRef } from '@angular/core';
import { MJAIConfigurationEntity, MJAIConfigurationParamEntity, ResourceData } from '@memberjunction/core-entities';
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
import { MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';
import * as i0 from "@angular/core";
interface SystemConfigFilter {
    searchTerm: string;
    status: string;
    isDefault: string;
}
interface ConfigurationWithParams extends MJAIConfigurationEntity {
    params?: MJAIConfigurationParamEntity[];
    isExpanded?: boolean;
    compressionPrompt?: MJAIPromptEntityExtended | null;
    summarizationPrompt?: MJAIPromptEntityExtended | null;
}
/**
 * AI Configuration Resource - displays AI system configuration management
 * Extends BaseResourceComponent to work with the resource type system
 */
export declare class SystemConfigurationComponent extends BaseResourceComponent implements OnInit {
    private navigationService;
    private cdr;
    isLoading: boolean;
    error: string | null;
    filterPanelVisible: boolean;
    viewMode: 'grid' | 'list';
    configurations: ConfigurationWithParams[];
    filteredConfigurations: ConfigurationWithParams[];
    allParams: MJAIConfigurationParamEntity[];
    allPrompts: MJAIPromptEntityExtended[];
    currentFilters: SystemConfigFilter;
    sortColumn: string;
    sortDirection: 'asc' | 'desc';
    selectedConfig: ConfigurationWithParams | null;
    detailPanelVisible: boolean;
    totalConfigs: number;
    activeConfigs: number;
    defaultConfig: ConfigurationWithParams | null;
    constructor(navigationService: NavigationService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    loadData(): Promise<void>;
    toggleFilterPanel(): void;
    setViewMode(mode: 'grid' | 'list'): void;
    toggleExpanded(config: ConfigurationWithParams): void;
    onFiltersChange(filters: SystemConfigFilter): void;
    onFilterChange(): void;
    onResetFilters(): void;
    private applyFilters;
    /**
     * Sort the configurations by the specified column
     */
    sortBy(column: string): void;
    /**
     * Apply sorting to the filtered list
     */
    private applySorting;
    onOpenConfiguration(config: ConfigurationWithParams): void;
    onOpenPrompt(promptId: string): void;
    onOpenParam(param: MJAIConfigurationParamEntity): void;
    /**
     * Show the detail panel for a configuration
     */
    showConfigDetails(config: ConfigurationWithParams, event?: Event): void;
    /**
     * Close the detail panel
     */
    closeDetailPanel(): void;
    /**
     * Open the full entity record from the detail panel
     */
    openConfigFromPanel(): void;
    getStatusClass(status: string): string;
    getStatusIcon(status: string): string;
    getParamTypeIcon(type: string): string;
    formatParamValue(param: MJAIConfigurationParamEntity): string;
    formatDate(date: Date): string;
    GetResourceDisplayName(_data: ResourceData): Promise<string>;
    GetResourceIconClass(_data: ResourceData): Promise<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SystemConfigurationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SystemConfigurationComponent, "app-system-configuration", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=system-configuration.component.d.ts.map