export interface IFile { read : ( path : string ) => Promise < any > ; write : ( path : string , data : any ) => Promise < void > ; delete : ( path : string ) => Promise < void > ; renameFile : ( oldPath : string , newPath : string ) => Promise < void > ; renameFolder : ( oldPath : string , newPath : string ) => Promise < void > ; clearAllFiles : ( ) => Promise < void > ; } namespace Private { export let instance ; export let defaultAssets = { } ; } hidden export class IFileInternal { static set instance ( instance ) { Private . instance = instance ; } static get instance ( ) { return Private . instance ; } static set defaultAssets ( defaultAssets ) { Private . defaultAssets = defaultAssets ; } static getDefaultAsset ( path ) { return Private . defaultAssets [ path ] ; } }