import { OnInit, ChangeDetectorRef } from '@angular/core';
import { TableLazyLoadEvent } from 'primeng/table';
import { MessageService, ConfirmationService } from 'primeng/api';
import { TranslationService } from '../../services/translation.service';
import { EntityService } from '../../services/entity.service';
import { ColumnOption } from '../export-dialog/export-dialog.component';
import * as i0 from "@angular/core";
/**
 * Base class for entity list components
 * Eliminates code duplication between feature list components
 */
export declare abstract class EntityListBaseComponent<T extends {
    id?: string;
    name?: string;
}> implements OnInit {
    protected service: EntityService<T>;
    protected messageService: MessageService;
    protected confirmationService: ConfirmationService;
    protected translationService: TranslationService;
    protected cdr: ChangeDetectorRef;
    entities: T[];
    selectedEntities: T[];
    totalRecords: number;
    filterValues: {
        [key: string]: any;
    };
    currentPage: number;
    pageSize: number;
    sortField: string;
    sortOrder: number;
    loading: boolean;
    showExportDialog: boolean;
    showFormDialog: boolean;
    showBulkDeleteDialog: boolean;
    selectedEntityForEdit: T | null;
    firstLoad: boolean;
    config: any;
    exportColumns: ColumnOption[];
    constructor(service: EntityService<T>, messageService: MessageService, confirmationService: ConfirmationService, translationService: TranslationService, cdr: ChangeDetectorRef);
    abstract ngOnInit(): void;
    abstract getEntityTranslationKey(): string;
    abstract getEntityPluralTranslationKey(): string;
    abstract buildFilterQuery(): string;
    /**
     * Load data from API
     */
    loadData(event?: TableLazyLoadEvent): void;
    /**
     * Apply filters and reload data
     */
    onApplyFilters(filterValues: any): void;
    /**
     * Clear filters and reload data
     */
    onClearFilters(): void;
    clearSelection(): void;
    onAdd(): void;
    onEdit(entity: T): void;
    onFormSave(): void;
    onDelete(entity: T): void;
    private showDeleteSuccess;
    private showDeleteError;
    onDeleteSelected(): void;
    onBulkDeleteComplete(): void;
    /**
     * Reload data (force reload)
     */
    reloadData(): void;
    onExport(): void;
    /**
     * Get status label for display (override in child class if needed)
     */
    getStatusLabel(status: string): string;
    /**
     * Get status severity for PrimeNG tag (override in child class if needed)
     */
    getStatusSeverity(status: string): 'success' | 'warn' | 'danger';
    static ɵfac: i0.ɵɵFactoryDeclaration<EntityListBaseComponent<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EntityListBaseComponent<any>, never, never, {}, {}, never, never, false, never>;
}
