import { Observable } from 'rxjs'; import { AppContext } from './app-context'; /** * Sharing file mode. */ export declare enum DeploymentShareMode { /** * Admin share. */ Admin = "adminshare", /** * User share. */ User = "usershare" } /** * Download states. */ export declare enum DownloadState { /** * Download not started. */ NotStarted = "NotStarted", /** * Download is running. */ Running = "Running", /** * Download is cancelled. */ Cancelled = "Cancelled", /** * Download failed. */ Failed = "Failed", /** * Download completed. */ Completed = "Completed" } /** * Result data of created deployment share. */ export interface DeploymentShareResult { /** * deployment share mode. */ mode: DeploymentShareMode; /** * Share name. */ name: string; /** * Created time (ISO time). */ createdTime: string; } /** * Request data of download. */ export interface DownloadRequest { /** * URL to download. */ url: string; /** * Path to file to store. */ path: string; /** * Flag indicating if the file URL is trusted and signature validation can be skipped. */ trustedUrlOmitValidation?: boolean; } /** * Result data of download. */ export interface DownloadResult { /** * Download identity. */ id: string; /** * Requested number of items. */ requested: number; /** * Remaining number of items. */ remaining: number; /** * Started time (ISO). */ startedTime: string; } /** * Status data of download. */ export interface DownloadStatus { /** * Download identity. */ id: string; /** * Requested number of items. */ requested: number; /** * Remaining number of items. */ remaining: number; /** * Error number of items. */ errors: number; /** * Started time (ISO). */ startedTime: string; /** * Completed time (ISO). */ completedTime: string; /** * Last error message. */ lastError?: string; /** * Sharing mode. */ mode: DeploymentShareMode; /** * Name of network share. */ name: string; /** * State of the download. */ downloadState: DownloadState; } /** * Status of file on the shared folder. */ export interface FileStatus { /** * Url of download source. */ url: string; /** * Timestamp when download completed (ISO). */ timestamp: string; /** * File path within the share folder. */ path: string; } /** * Secure deployment share class. */ export declare class DeploymentShare { private appContext; private static deploymentShareUrl; private static deploymentShareNameUrl; private static deploymentShareDownloadUrl; private static deploymentShareDownloadIdUrl; private static deploymentShareDownloadCancelUrl; private static deploymentShareStatusUrl; private static deploymentShareFileUrl; private static deploymentShareFilePathUrl; private static deploymentCopyUrl; /** * Initializes a new instance of the DeploymentShare class. * * @param appContext the application context. */ constructor(appContext: AppContext); /** * Create a new deployment network share. (elevate the desktop gateway if required.) * * @param shareMode the sharing mode. * @param shareName the name of share. */ createShare(shareMode: DeploymentShareMode, shareName: string): Observable; /** * Delete the deployment network share. (elevate the desktop gateway if required.) * * @param shareMode the sharing mode. * @param shareName the name of share. */ deleteShare(shareMode: DeploymentShareMode, shareName: string): Observable; /** * List existing deployment network shares. * * @param shareMode the sharing mode. */ queryShares(shareMode: DeploymentShareMode): Observable; /** * Download files from specified urls and store to the deployment network share folder. * * @param shareMode the sharing mode. * @param shareName the name of share. * @param request the request object. * @param timeout the timeout for the download in milliseconds. * @param cancelReady (Optional) the cancel ready callback. Retain the supplied ID to call cancelDownload(). * @param polling (Optional) the polling timer milliseconds (default is 2000, and minimum is 1000). */ downloadFiles(shareMode: DeploymentShareMode, shareName: string, request: DownloadRequest[], timeout?: number, cancelReady?: (id: string) => void, polling?: number): Observable; /** * Cancel the download by ID. * * @param shareMode the sharing mode. * @param shareName the name of share. * @param id the identification of download call responded by cancelReady() call back. */ cancelDownload(shareMode: DeploymentShareMode, shareName: string, id: string): Observable; /** * Query active downloads with filtering conditions. * * @param shareMode the sharing mode. * @param shareName the name of share. */ queryDownloads(shareMode?: DeploymentShareMode, shareName?: string): Observable; /** * Query files on the share. * * @param shareMode the sharing mode. * @param shareName the name of share. */ queryFiles(shareMode: DeploymentShareMode, shareName: string): Observable; /** * Delete a file or a directory on the share. * * @param shareMode the sharing mode. * @param shareName the name of share. * @param path the path to the file or the directory on the share. */ deleteItem(shareMode: DeploymentShareMode, shareName: string, path: string): Observable; /** * Create a text/XML file in network share. * * @param shareMode the sharing mode. * @param shareName the name of share. * @param path the path to the file or the directory on the share. * @param content the linese of content for the file to create. */ createTextFile(shareMode: DeploymentShareMode, shareName: string, path: string, content: string[]): Observable; /** * Copy file or folder in network share. * @param shareMode The share mode. * @param shareName the name of the share. * @param source The source path of the item to copy relative to the network share. * @param destination The destination path of the item to copy relative to the network share. */ copyItem(shareMode: DeploymentShareMode, shareName: string, source: string, destination: string): Observable; private queryStatus; }