import { Observable, Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export interface ExportJob {
    id: string;
    fileName: string;
    progress: number;
    isCompleted: boolean;
    error: string | null;
    timestamp: number;
    progressAnimation?: Subscription | null;
}
export interface ExportStatus {
    isExporting: boolean;
    activeJobs: ExportJob[];
    showNotification: boolean;
}
export declare class ExportNotificationService {
    private defaultStatus;
    private exportStatusSubject;
    exportStatus$: Observable<ExportStatus>;
    constructor();
    /**
     * Inicia una nueva exportación y retorna su ID
     */
    startExport(fileName: string): string;
    /**
     * Actualiza el progreso de una exportación específica
     */
    updateProgress(jobId: string, targetProgress: number): void;
    /**
     * Detiene de forma segura una animación
     */
    private stopAnimation;
    /**
     * Anima el progreso de una forma más realista
     */
    private animateProgressTo;
    /**
     * Marca una exportación como completada
     */
    completeExport(jobId: string): void;
    /**
     * Marca una exportación como fallida
     */
    errorExport(jobId: string, error: any): void;
    /**
     * Elimina un trabajo de la lista de trabajos activos
     */
    private removeJob;
    /**
     * Oculta la notificación manualmente
     */
    hideNotification(): void;
    /**
     * Muestra la notificación si estaba oculta
     */
    showNotification(): void;
    /**
     * Genera un ID único para cada trabajo
     */
    private generateJobId;
    static ɵfac: i0.ɵɵFactoryDeclaration<ExportNotificationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ExportNotificationService>;
}
