import type { DownloadResult, UploadResult } from "./types.js"; export type { DownloadResult, UploadResult } from "./types.js"; export interface WorkspaceTransferDirent { name: string; isFile(): boolean; isDirectory(): boolean; isSymbolicLink?(): boolean; } export interface WorkspaceTransferStats { isFile(): boolean; isDirectory(): boolean; isSymbolicLink?(): boolean; size: number; } export interface WorkspaceTransferFileSystem { mkdir(path: string, options?: { recursive?: boolean; }): Promise; readdir(path: string, options: { withFileTypes: true; }): Promise; readFile(path: string): Promise; readFile(path: string, encoding: BufferEncoding): Promise; writeFile(path: string, data: string | Buffer, options?: { flag?: string; mode?: number; }): Promise; stat(path: string): Promise; lstat?(path: string): Promise; rename?(oldPath: string, newPath: string): Promise; rm?(path: string, options?: { recursive?: boolean; force?: boolean; }): Promise; unlink?(path: string): Promise; rmdir?(path: string): Promise; } export interface WorkspaceTransferEnv { cwd: string; uploadDir: string; workspaceDir?: string; fs?: WorkspaceTransferFileSystem; remoteFs?: WorkspaceTransferFileSystem; } export interface WorkspaceTransferOptions { runner?: WorkspaceTransferRunnerOptions; uploadMaxFileMb?: number; workspaceExclude?: string[]; warn?: (message: string) => void; } export interface WorkspaceTransferRunnerOptions { upload_max_file_mb?: number; workspace?: { exclude?: string[]; }; } export interface WorkspaceDownloadOptions { conflictPolicy: "refuse" | "overwrite"; } export declare function uploadWorkspace(env: WorkspaceTransferEnv, opts: WorkspaceTransferOptions): Promise; export declare function downloadWorkspace(env: WorkspaceTransferEnv, opts: WorkspaceDownloadOptions): Promise;