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; }; }