/// import { Writable, Readable } from 'stream'; import { Socket } from 'net'; import { Client, SFTPWrapper } from 'ssh2'; import { Stats, FileEntry } from 'ssh2-streams'; import { FileInfo } from 'basic-ftp'; import { Strategy } from './strategy'; import { IFile, ITransferOptions, IFtpConfig, ISFtpOptions, ITransferInfo } from '../interfaces'; export declare interface SftpStrategy { config: IFtpConfig; options: ISFtpOptions; } export declare class SftpStrategy extends Strategy { protected client: Client; protected wrapper: SFTPWrapper; connected: boolean; protected get socket(): Socket; protected getWrapper(): SFTPWrapper; connect: () => Promise; protected onKeyboardInteractive: (name: any, instructions: any, instructionsLang: any, prompts: any, finish: any) => void; protected onDisconnect: () => void; disconnect: () => Promise; download: (dest: Writable, info: ITransferInfo, options?: ITransferOptions) => Promise; upload: (source: Readable, info: ITransferInfo, options?: ITransferOptions) => Promise; list: (path?: string) => Promise; protected formatFile: (file: FileInfo, entry: FileEntry) => IFile; protected _list(path: string): Promise; protected _stat(path: string): Promise; size: (path: any) => Promise; exists: (path: string) => Promise; move: (source: any, dest: any) => Promise; removeFile: (path: any) => Promise; removeEmptyFolder: (path: any) => Promise; removeFolder: (path: any) => Promise; createFolder: (path: any) => Promise; createEmptyFile: (path: any) => Promise; protected _open(path: string, mode: string | number): Promise; protected _close(buffer: Buffer): Promise; pwd: () => Promise; send: (command: any) => Promise; protected handle: (fn: Function, ...args: any[]) => Promise; protected handleTransfer: (source: Readable, dest: Writable, info: ITransferInfo, options: ITransferOptions) => Promise; }