Spaces:
Paused
Paused
| /// <reference types="node" /> | |
| import { Socket } from "net"; | |
| export type ProgressType = "upload" | "download" | "list"; | |
| /** | |
| * Describes progress of file transfer. | |
| */ | |
| export interface ProgressInfo { | |
| /** A name describing this info, e.g. the filename of the transfer. */ | |
| readonly name: string; | |
| /** The type of transfer, typically "upload" or "download". */ | |
| readonly type: ProgressType; | |
| /** Transferred bytes in current transfer. */ | |
| readonly bytes: number; | |
| /** Transferred bytes since last counter reset. Useful for tracking multiple transfers. */ | |
| readonly bytesOverall: number; | |
| } | |
| export type ProgressHandler = (info: ProgressInfo) => void; | |
| /** | |
| * Tracks progress of one socket data transfer at a time. | |
| */ | |
| export declare class ProgressTracker { | |
| bytesOverall: number; | |
| protected readonly intervalMs = 500; | |
| protected onStop: (stopWithUpdate: boolean) => void; | |
| protected onHandle: ProgressHandler; | |
| /** | |
| * Register a new handler for progress info. Use `undefined` to disable reporting. | |
| */ | |
| reportTo(onHandle?: ProgressHandler): void; | |
| /** | |
| * Start tracking transfer progress of a socket. | |
| * | |
| * @param socket The socket to observe. | |
| * @param name A name associated with this progress tracking, e.g. a filename. | |
| * @param type The type of the transfer, typically "upload" or "download". | |
| */ | |
| start(socket: Socket, name: string, type: ProgressType): void; | |
| /** | |
| * Stop tracking transfer progress. | |
| */ | |
| stop(): void; | |
| /** | |
| * Call the progress handler one more time, then stop tracking. | |
| */ | |
| updateAndStop(): void; | |
| } | |