/**
 * Interface to read and save file like objects from a backend system.
 */ import { Observable } from 'rxjs' ; import { IFile } from './i-file' ; import { IFileAccessConfiguration } from './i-file-access-configuration' ; import { IFileDescription } from './i-file-description' ; import { SerializationService } from '../../model/serialization.service' ; /**
 * Data needed to save a file.
 */ export interface ICommitData { message : string ; override ? : boolean ; } export enum FileStatus { CHANGED = 'CHANGED' , UNCHANGED = 'UNCHANGED' , 'EXISTS_NOT' = 'EXISTS_NOT' } export interface IFileStats { status : FileStatus ; } export interface IFileAccessService { param description return load ( description ) : Observable < IFile | IFileDescription > ; param file param commitData return save ( file , commitData ? ) : Observable < IFile > ; param file stats ( file ) : Observable < IFileStats > ; param configuration param serializationService return serialize ( serializationService , configuration ) : string ; param serializationService param serialzedConfiguration return deserialize ( serializationService , serialzedConfiguration ) : IFileAccessConfiguration ; }