import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { ResourceData, MJTemplateEntity } from '@memberjunction/core-entities';
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
import { FilterFieldConfig } from '@memberjunction/ng-ui-components';
import * as i0 from "@angular/core";
interface TemplateCardData {
    Entity: MJTemplateEntity;
    ContentTypes: string[];
    LastUpdated: Date | null;
    CategoryName: string;
}
export declare class CommunicationTemplatesResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {
    private cdr;
    private navService;
    allTemplates: TemplateCardData[];
    filteredTemplates: TemplateCardData[];
    categories: string[];
    categoryFilter: string;
    isLoading: boolean;
    private searchTerm;
    /** The current free-text search applied to the template list (read-only, for agent context). */
    get SearchText(): string;
    constructor(cdr: ChangeDetectorRef, navService: NavigationService);
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    loadData(): Promise<void>;
    private buildTemplateCard;
    private extractCategories;
    getCategoryCount(category: string): number;
    onSearchValue(value: string): void;
    onCategoryFilter(category: string): void;
    get filterFields(): FilterFieldConfig[];
    get filterValues(): Record<string, unknown>;
    get ActiveFilterCount(): number;
    onFilterValuesChange(values: Record<string, unknown>): void;
    resetFilters(): void;
    private applyFilter;
    openTemplate(template: MJTemplateEntity): void;
    addNewTemplate(): void;
    getContentTypeIcon(type: string): string;
    GetResourceDisplayName(data: ResourceData): Promise<string>;
    GetResourceIconClass(data: ResourceData): Promise<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<CommunicationTemplatesResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CommunicationTemplatesResourceComponent, "mj-communication-templates-resource", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=communication-templates-resource.component.d.ts.map