'use strict' ; import * as vscode from 'vscode' ; import { Uri } from 'vscode' ; import { ICoreOptions , FileOptions } from 'spsave' ; import { ISPRequest , IAuthOptions } from 'sp-request' ; import { ISPPullContext , ISPPullOptions } from 'sppull' ; import { LocalStorageService } from './service/localStorageService' ; declare module 'vscode' { export namespace window { export let spgo ; } } export enum SPCheckOutType { Online = 0 , Offline , None } export interface IAppManager { credentials ? : ICredential ; configSet ? : Map < string , IConfig > ; localStore : LocalStorageService ; outputChannel : vscode . OutputChannel ; statusBarItem : vscode . StatusBarItem ; initialize ( contextPath ) : Promise < any > ; reloadConfiguration ( workspaceFolder ) : void ; } export interface ICredential { domain ? : string ; password ? : string ; username ? : string ; clientId ? : string ; clientSecret ? : string ; realm ? : string ; } export interface ICommand { execute ( fileUri , _props ? ) : Thenable < any > ; } export interface IConfig { authenticationType ? : string ; authenticationDetails ? : any ; checkInMessage ? : string ; publishingScope ? : string ; publishWorkspaceOptions ? : IPublishWorkspaceOptions ; publishWorkspaceGlobPattern ? : string ; remoteFolders ? : string [ ] ; sharePointSiteUrl ? : string ; sourceDirectory ? : string ; sourceRoot ? : string ; storeCredentials ? : Boolean ; subSites ? : ISubSite [ ] ; workspaceRoot ? : string ; } export interface IError { message : string ; } export interface IFileGateway { checkOutFile ( fileUri , spr ) : Promise < any > ; deleteFile ( fileUri , spr ) : Promise < any > ; downloadFiles ( context , fileOptions ) : Promise < any > ; getFileInformation ( fileUri , spr ) : Promise < any > ; undoCheckOutFile ( fileUri , spr ) : Promise < any > ; uploadFiles ( coreOptions , credentials , fileOptions ) : Promise < any > ; } export interface IPublishingAction { contentUri : string ; scope : string ; message : string ; } export interface IPublishWorkspaceOptions { destinationFolder ? : string ; globPattern ? : string ; localRoot ? : string ; } export interface ISPFileInformation { checkOutType : number ; checkOutBy ? : string ; name : string ; timeLastModified : Date ; } export interface ISubSite { remoteFolders ? : string [ ] ; sharePointSiteUrl : string ; }