import { IPlatformService } from '../platform/platformResolver' import { FileToSign } from '../services/edocu/batch' import { PlatformFile, PreparedFiles } from './element.interface' export type UploadFilesFunction = ( type: string, hash: string, organization: string, files: PreparedFiles[], workRecordHash?: string, ) => Promise export interface IFileServiceImplementation extends IPlatformService { uploadFiles: UploadFilesFunction getFileHash: (fileData: T) => Promise } export interface IFileService { initialize: () => Promise initialized: () => boolean uploadFiles: UploadFilesFunction getFileHash: (fileData: PlatformFile) => Promise } export type DuplicatedFileError = FileToSign & { error: 'Duplicated file upload' 'element-hash': string } export type FileStatusDataSuccess = { status: 'success' } export type FileStatusDataError = { status: 'error' error: string } export type FileStatusData = FileStatusDataSuccess | FileStatusDataError export interface FileLockData { timestamp: number openedBy: { uid: string; name: string } } export interface FileLockBody { user: { cn: string; sn: string } }