import ModelBase from 'App/ModelBase'; import Language from 'Language/Language'; import { QualityModel } from 'Quality/Quality'; import CustomFormat from 'typings/CustomFormat'; import AppSectionState, { AppSectionItemState, Error } from './AppSectionState'; export interface StatusMessage { title: string; messages: string[]; } export interface Queue extends ModelBase { languages: Language[]; quality: QualityModel; customFormats: CustomFormat[]; size: number; title: string; sizeleft: number; timeleft: string; estimatedCompletionTime: string; status: string; trackedDownloadStatus: string; trackedDownloadState: string; statusMessages: StatusMessage[]; errorMessage: string; downloadId: string; protocol: string; downloadClient: string; outputPath: string; movieHasFile: boolean; movieId?: number; } export interface QueueDetailsAppState extends AppSectionState { params: unknown; } export interface QueuePagedAppState extends AppSectionState { isGrabbing: boolean; grabError: Error; isRemoving: boolean; removeError: Error; } interface QueueAppState { status: AppSectionItemState; details: QueueDetailsAppState; paged: QueuePagedAppState; } export default QueueAppState;