/**
 * Server Download Workflow
 *
 * Handles downloading Minecraft server JARs with verification and progress tracking
 */
import { type ServerJarDownloadResult, type ServerJarInfo, type ServerJarType } from '../core/server-jar/index.js';
/**
 * Server download progress event
 */
export interface ServerDownloadProgress {
    serverType: ServerJarType;
    version: string;
    percent: number;
    bytesDownloaded: number;
    totalBytes: number;
    status: 'fetching' | 'downloading' | 'verifying' | 'done' | 'error';
    message?: string;
}
/**
 * Server download workflow options
 */
export interface ServerDownloadOptions {
    outputDir: string;
    serverType: ServerJarType;
    version: string;
    backupExisting?: boolean;
    backupDir?: string;
    verifyChecksum?: boolean;
    useStreaming?: boolean;
    onProgress?: (progress: ServerDownloadProgress) => void;
}
/**
 * Download the latest server JAR for a given type and version
 */
export declare function downloadServerJar(options: ServerDownloadOptions): Promise<ServerJarDownloadResult>;
/**
 * List available Minecraft versions for a server type
 */
export declare function listAvailableVersions(serverType: ServerJarType): Promise<string[]>;
/**
 * Check if a version is supported by a server type
 */
export declare function isVersionSupported(serverType: ServerJarType, version: string): Promise<boolean>;
/**
 * Get the latest build info without downloading
 */
export declare function getLatestBuildInfo(serverType: ServerJarType, version: string): Promise<ServerJarInfo>;
//# sourceMappingURL=server-download.d.ts.map