export interface ApplicationFileUploadResponse { id: number; contentType: string; fileName: string; accessUrl: string; accessUrlExpiration: string; } export enum FileStatus { UPLOAD_VIRUS_SCAN = 0, AWAITING_VIRUS_SCAN = 1, UPLOAD_API = 2, AWAITING_API = 3, COMPLETE_VIRUS_SCAN = 4, FAILED_VIRUS_SCAN = 5, FAILED_API = 6, COMPLETE = 7 } export interface ProgressFileUploadEvent { progress: number; status: FileStatus.UPLOAD_API|FileStatus.UPLOAD_VIRUS_SCAN; } export interface BaseFileUploadEvent { status: FileStatus.AWAITING_API|FileStatus.AWAITING_VIRUS_SCAN; } export interface CompleteFileUploadEvent { status: FileStatus.COMPLETE|FileStatus.FAILED_API|FileStatus.FAILED_VIRUS_SCAN|FileStatus.COMPLETE_VIRUS_SCAN; result: T; } export type FileUploadEvent = ProgressFileUploadEvent|BaseFileUploadEvent|CompleteFileUploadEvent;