import { EventEmitter } from 'events'; export interface SSH2StreamsConfig { host: string; port?: number; username: string; privateKey?: Buffer | string; password?: string; passphrase?: string; connectTimeout?: number; algorithms?: { kex?: string[]; cipher?: string[]; hmac?: string[]; compress?: string[]; }; } export interface SFTPChannel extends EventEmitter { write(data: Buffer): void; end(): void; } export declare class SSH2StreamsTransport extends EventEmitter { private socket; private ssh; private config; private connected; private authenticated; private sftpChannel; private pendingChannels; private currentWindowSize; private initialWindowSize; private maxPacketSize; private serverMaxWindowSize; adaptiveMetrics: { successfulTransfers: number; timeouts: number; avgTransferSpeed: number; lastAdjustmentTime: number; avgResponseTime: number; serverCapabilities: { maxPacketSize: number; preferredTimeout: number; optimalChunkSize: number; }; }; private isOpenSSHRSAKey; constructor(config: SSH2StreamsConfig); private setupEventHandlers; private startAuthentication; private createChannelWrapper; connect(): Promise; openSFTP(): Promise; disconnect(): void; isConnected(): boolean; getCurrentWindowSize(): number; getSafeConcurrency(chunkSize: number, maxConcurrency?: number): number; getOptimalConcurrency(chunkSize: number): number; /** * Get maximum safe SFTP chunk size based on SSH packet size limits */ getMaxSafeChunkSize(): number; /** * Calculate adaptive timeout based on server performance */ getAdaptiveTimeout(operationType: 'control' | 'data' | 'connection', dataSize?: number): number; /** * Calculate optimal chunk size based on server capabilities and performance */ getAdaptiveChunkSize(transferType: 'upload' | 'download', bytesProcessed?: number): number; /** * Get current success rate for adaptive decisions */ private getSuccessRate; /** * Calculate optimal window size based on server capabilities */ private calculateOptimalWindowSize; /** * Dynamically adjust parameters based on transfer performance */ adaptPerformance(transferSpeed: number, hadTimeout: boolean, responseTimeMs?: number): void; /** * Send SSH keepalive ping - uses connection validation */ ping(): Promise; } //# sourceMappingURL=ssh2-streams-transport.d.ts.map