import type { ApiInterface } from '../types/api';
/**
 * Type of model supported by Sherpa-onnx
 */
type ModelType = 'asr' | 'tts' | 'vad' | 'kws' | 'speaker-id' | 'language-id' | 'audio-tagging' | 'punctuation';
interface ExtractionResult {
    success: boolean;
    message?: string;
    extractedFiles?: string[];
}
export declare class ArchiveService {
    private baseDir;
    private api;
    constructor(api: ApiInterface);
    /**
     * Ensure the base directory exists
     */
    ensureBaseDir(): Promise<void>;
    /**
     * Get the path for a model
     * @param modelType Type of the model
     * @param modelName Name of the model
     * @returns Promise resolving to the model path
     */
    getModelPath(modelType: ModelType, modelName: string): Promise<string>;
    /**
     * Check if a model is downloaded
     * @param modelType Type of the model
     * @param modelName Name of the model
     * @returns Promise resolving to whether the model is downloaded
     */
    isModelDownloaded(modelType: ModelType, modelName: string): Promise<boolean>;
    /**
     * Download a model
     * @param modelType Type of the model
     * @param modelName Name of the model
     * @param url URL to download from
     * @param onProgress Optional progress callback
     * @returns Promise resolving to the model path
     */
    downloadModel(modelType: ModelType, modelName: string, url: string, onProgress?: (progress: number) => void): Promise<string>;
    /**
     * Delete a model
     * @param modelType Type of the model
     * @param modelName Name of the model
     * @returns Promise resolving when deletion is complete
     */
    deleteModel(modelType: ModelType, modelName: string): Promise<void>;
    /**
     * Get the size of a model
     * @param modelType Type of the model
     * @param modelName Name of the model
     * @returns Promise resolving to the model size in bytes
     */
    getModelSize(modelType: ModelType, modelName: string): Promise<number>;
    /**
     * Extract a tar.bz2 file to a target directory
     * @param sourcePath Path to the tar.bz2 file
     * @param targetDir Directory to extract to
     * @returns Promise with extraction result
     */
    extractTarBz2(sourcePath: string, targetDir: string): Promise<ExtractionResult>;
}
export {};
//# sourceMappingURL=ArchiveService.d.ts.map