/// import Bull from 'bull'; import { Logger } from '../core'; import { EpisodesService } from '../episodes'; import { FilesService } from '../files'; import { NotificationsService } from '../notifications/service'; import { PodacstsRepository } from './repository'; export interface ImportJob { ownerId: string; podcastId: string; podcastName: string; episodeId?: string; episodeName?: string; type: 'cover' | 'audio'; url: string; } export interface FailedJob extends ImportJob { reason: string; } export interface ImportProgress { waiting: number; active: number; completed: number; failed: number; failedJobs: FailedJob[]; } export declare class ImportQueue { private readonly podcastRepo; private readonly episodeService; private readonly filesService; private readonly notificationsService; private readonly getSocket; private readonly logger; private readonly queue; constructor(logger: Logger, podcastRepo: PodacstsRepository, episodeService: EpisodesService, filesService: FilesService, notificationsService: NotificationsService, getSocket: () => SocketIO.Server); addJob(job: ImportJob): Promise>; getPodcastJobs(podcastId: string): Promise>>; getEpisodeJobs(episodeId: string): Promise>>; getEpisodeJobCount(episodeId: string): Promise; clean(): Promise[]>; start(): void; process(job: ImportJob): Promise; getImportProgress(podcastId: string): Promise; private processAudio; private processCover; private checkEpisodeCompleted; checkPodcastProgress(userId: string, podcastId: string): Promise; }