import { FileDownload, FileUpload } from 'tabby-core'; export declare class LocalFileDownload extends FileDownload { private localPath; private name; private size; private mode; private handle; constructor(localPath: string, name: string, size: number, mode: number); openForWriting(): Promise; getName(): string; getSize(): number; /** Only the npm typings declare this on a download; the installed class has it on uploads alone. */ getMode(): number; write(buffer: Uint8Array): Promise; close(): void; cancel(): void; } /** * A zero-byte upload, used to create an empty remote file. * * `SFTPSession` has no "create file" of its own, and `open()` would need * russh's OPEN_WRITE/OPEN_CREATE flags — russh being a native module this * plugin cannot import. Handing an empty transfer to `upload()` gets there * through the public API instead: it opens the temp path with those flags * itself, reads one empty chunk, and renames into place. */ export declare class EmptyFileUpload extends FileUpload { private name; private mode; constructor(name: string, mode: number); getName(): string; getSize(): number; getMode(): number; /** Empty on the first call: that is how upload() detects end of stream. */ read(): Promise; close(): void; } export declare class LocalFileUpload extends FileUpload { private localPath; private name; private size; private mode; private handle; private buffer; constructor(localPath: string, name: string, size: number, mode: number); openForReading(): Promise; getName(): string; getSize(): number; getMode(): number; /** An empty chunk is how SFTPSession.upload() detects the end of the stream. */ read(): Promise; close(): void; cancel(): void; }