import { OnInit, ChangeDetectorRef } from '@angular/core';
import { MJAIConfigurationEntity, MJAIConfigurationParamEntity, ResourceData } from '@memberjunction/core-entities';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import { MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';
import { FilterFieldConfig } from '@memberjunction/ng-ui-components';
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 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(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;
    /** View-mode options for the shared <mj-view-toggle>. */
    readonly configViewOptions: {
        key: string;
        icon: string;
        title: string;
    }[];
    /** Reset only the popover filters — leave searchTerm (toolbar) untouched. */
    resetPopoverFilters(): void;
    /** Number of active filter criteria inside the popover (excludes searchTerm — surfaced separately). */
    get ActiveFilterCount(): number;
    /** Values record consumed by the centralized <mj-filter-panel>. */
    get configFilterValues(): Record<string, unknown>;
    /** Field config consumed by the centralized <mj-filter-panel>. */
    get configFilterFields(): FilterFieldConfig[];
    /** Receive the updated values record from <mj-filter-panel> and apply it. */
    onFilterValuesChange(values: Record<string, unknown>): void;
    /** Update searchTerm from the toolbar search input. */
    onSearchTermChange(value: string): 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