/**
 * PortfolioDownloader - Downloads elements from GitHub repositories
 *
 * Handles fetching file contents from GitHub, decoding base64 content,
 * and returning structured element data ready for local storage.
 */
import { PortfolioRepoManager } from '../portfolio/PortfolioRepoManager.js';
export interface ElementData {
    content: string;
    metadata: Record<string, any>;
    sha: string;
}
export declare class PortfolioDownloader {
    /**
     * Download an element from GitHub
     */
    downloadFromGitHub(repoManager: PortfolioRepoManager, elementPath: string, username: string, repository: string): Promise<ElementData>;
    /**
     * Extract metadata from frontmatter
     */
    private extractMetadata;
    /**
     * Download multiple elements in batch
     */
    downloadBatch(repoManager: PortfolioRepoManager, elementPaths: string[], username: string, repository: string, onProgress?: (downloaded: number, total: number) => void): Promise<Map<string, ElementData>>;
}
//# sourceMappingURL=PortfolioDownloader.d.ts.map