/**
 * SFTP Client using ssh2-streams transport
 */
import { EventEmitter } from 'events';
import { SSH2StreamsConfig } from '../ssh/ssh2-streams-transport';
import { FileAttributes, DirectoryEntry } from '../ssh/types';
export type { DirectoryEntry, FileAttributes } from '../ssh/types';
export interface SFTPClientOptions extends SSH2StreamsConfig {
}
export declare class SSH2StreamsSFTPClient extends EventEmitter {
    private transport;
    private sftpChannel;
    private requestId;
    private ready;
    private pendingRequests;
    private dataBuffer;
    constructor(options: SFTPClientOptions);
    private setupTransportHandlers;
    /**
     * Connect and initialize SFTP
     */
    connect(): Promise<void>;
    private setupSFTPHandlers;
    private initializeSFTP;
    private handleSFTPData;
    private handleSFTPPacket;
    private handleStatusPacket;
    private parseNamePacket;
    private parseFileAttributes;
    private sendSFTPRequest;
    /**
     * Open a file
     */
    openFile(path: string, flags?: number): Promise<Buffer>;
    /**
     * Close a file
     */
    closeFile(handle: Buffer): Promise<void>;
    /**
     * Read file data
     */
    readFile(handle: Buffer, offset: number, length: number): Promise<Buffer>;
    /**
     * List directory contents
     */
    listDirectory(path: string): Promise<DirectoryEntry[]>;
    private openDirectory;
    private readDirectory;
    /**
     * Get file stats
     */
    stat(path: string): Promise<FileAttributes>;
    /**
     * Write data to a file handle
     */
    writeFile(handle: Buffer, offset: number, data: Buffer): Promise<void>;
    /**
     * Remove a file
     */
    removeFile(path: string): Promise<void>;
    /**
     * Rename a file
     */
    renameFile(oldPath: string, newPath: string): Promise<void>;
    /**
     * Create a directory
     */
    makeDirectory(path: string, attrs?: Partial<FileAttributes>): Promise<void>;
    /**
     * Remove a directory
     */
    removeDirectory(path: string): Promise<void>;
    /**
     * Set file attributes
     */
    setAttributes(path: string, attrs: Partial<FileAttributes>): Promise<void>;
    /**
     * Get real path (resolve symbolic links)
     */
    realPath(path: string): Promise<string>;
    /**
     * Disconnect
     */
    disconnect(): void;
    /**
     * Check if connected and ready
     */
    isReady(): boolean;
}
//# sourceMappingURL=ssh2-streams-client.d.ts.map