// Type definitions for Apache Cordova File System plugin // Project: https://github.com/apache/cordova-plugin-file // Definitions by: Microsoft Open Technologies Inc // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // // Copyright (c) Microsoft Open Technologies, Inc. // Licensed under the MIT license. interface Window { /** * Requests a filesystem in which to store application data. * @param type Whether the filesystem requested should be persistent, as defined above. Use one of TEMPORARY or PERSISTENT. * @param size This is an indicator of how much storage space, in bytes, the application expects to need. * @param successCallback The callback that is called when the user agent provides a filesystem. * @param errorCallback A callback that is called when errors happen, or when the request to obtain the filesystem is denied. */ requestFileSystem( type: LocalFileSystem, size: number, successCallback: (fileSystem: FileSystem) => void, errorCallback?: (fileError: FileError) => void): void; /** * Look up file system Entry referred to by local URL. * @param string url URL referring to a local file or directory * @param successCallback invoked with Entry object corresponding to URL * @param errorCallback invoked if error occurs retrieving file system entry */ resolveLocalFileSystemURL(url: string, successCallback: (entry: Entry) => void, errorCallback?: (error: FileError) => void): void; /** * Look up file system Entry referred to by local URI. * @param string uri URI referring to a local file or directory * @param successCallback invoked with Entry object corresponding to URI * @param errorCallback invoked if error occurs retrieving file system entry */ resolveLocalFileSystemURI(uri: string, successCallback: (entry: Entry) => void, errorCallback?: (error: FileError) => void): void; TEMPORARY: number; PERSISTENT: number; } /** This interface represents a file system. */ interface FileSystem { /* The name of the file system, unique across the list of exposed file systems. */ name: string; /** The root directory of the file system. */ root: DirectoryEntry; } /** * An abstract interface representing entries in a file system, * each of which may be a File or DirectoryEntry. */ interface Entry { /** Entry is a file. */ isFile: boolean; /** Entry is a directory. */ isDirectory: boolean; /** The name of the entry, excluding the path leading to it. */ name: string; /** The full absolute path from the root to the entry. */ fullPath: string; /** The file system on which the entry resides. */ filesystem: FileSystem; nativeURL: string; /** * Look up metadata about this entry. * @param successCallback A callback that is called with the time of the last modification. * @param errorCallback A callback that is called when errors happen. */ getMetadata( successCallback: (metadata: Metadata) => void, errorCallback?: (error: FileError) => void): void; /** * Move an entry to a different location on the file system. It is an error to try to: * move a directory inside itself or to any child at any depth;move an entry into its parent if a name different from its current one isn't provided; * move a file to a path occupied by a directory; * move a directory to a path occupied by a file; * move any element to a path occupied by a directory which is not empty. * A move of a file on top of an existing file must attempt to delete and replace that file. * A move of a directory on top of an existing empty directory must attempt to delete and replace that directory. * @param parent The directory to which to move the entry. * @param newName The new name of the entry. Defaults to the Entry's current name if unspecified. * @param successCallback A callback that is called with the Entry for the new location. * @param errorCallback A callback that is called when errors happen. */ moveTo(parent: DirectoryEntry, newName?: string, successCallback?: (entry: Entry) => void, errorCallback?: (error: FileError) => void): void; /** * Copy an entry to a different location on the file system. It is an error to try to: * copy a directory inside itself or to any child at any depth; * copy an entry into its parent if a name different from its current one isn't provided; * copy a file to a path occupied by a directory; * copy a directory to a path occupied by a file; * copy any element to a path occupied by a directory which is not empty. * A copy of a file on top of an existing file must attempt to delete and replace that file. * A copy of a directory on top of an existing empty directory must attempt to delete and replace that directory. * Directory copies are always recursive--that is, they copy all contents of the directory. * @param parent The directory to which to move the entry. * @param newName The new name of the entry. Defaults to the Entry's current name if unspecified. * @param successCallback A callback that is called with the Entry for the new object. * @param errorCallback A callback that is called when errors happen. */ copyTo(parent: DirectoryEntry, newName?: string, successCallback?: (entry: Entry) => void, errorCallback?: (error: FileError) => void): void; /** * Returns a URL that can be used as the src attribute of a