/**
 * PortfolioPullHandler - Handles pulling portfolio elements from GitHub
 *
 * This handler implements the pull functionality for sync_portfolio,
 * enabling users to download their portfolio from GitHub to local storage.
 * Supports multiple sync modes (additive, mirror, backup) and dry-run.
 */
import { PortfolioRepoManager } from '../portfolio/PortfolioRepoManager.js';
import { GitHubPortfolioIndexer } from '../portfolio/GitHubPortfolioIndexer.js';
import { PortfolioManager } from '../portfolio/PortfolioManager.js';
import { PortfolioIndexManager } from '../portfolio/PortfolioIndexManager.js';
import { PortfolioSyncComparer } from '../sync/PortfolioSyncComparer.js';
import { PortfolioDownloader } from '../sync/PortfolioDownloader.js';
import { IFileOperationsService } from '../services/FileOperationsService.js';
import { TokenManager } from '../security/tokenManager.js';
export interface PullOptions {
    direction: string;
    mode?: string;
    force?: boolean;
    dryRun?: boolean;
    confirmDeletions?: boolean;
}
export interface PullResult {
    content: Array<{
        type: string;
        text: string;
    }>;
}
export interface PortfolioPullHandlerDependencies {
    portfolioRepoManager: PortfolioRepoManager;
    githubIndexer: GitHubPortfolioIndexer;
    portfolioManager: PortfolioManager;
    indexManager: PortfolioIndexManager;
    syncComparer: PortfolioSyncComparer;
    downloader: PortfolioDownloader;
    fileOperations: IFileOperationsService;
    tokenManager: TokenManager;
}
export declare class PortfolioPullHandler {
    private portfolioRepoManager;
    private githubIndexer;
    private portfolioManager;
    private indexManager;
    private syncComparer;
    private downloader;
    private readonly fileOperations;
    private readonly tokenManager;
    constructor(dependencies: PortfolioPullHandlerDependencies);
    /**
     * Execute the pull operation from GitHub to local portfolio
     */
    executePull(options: PullOptions, personaIndicator: string): Promise<PullResult>;
    /**
     * Validate and normalize sync mode
     * SECURITY FIX: Added Unicode normalization to prevent homograph attacks
     */
    private validateSyncMode;
    /**
     * Get all local elements organized by type
     */
    private getAllLocalElements;
    /**
     * Count total elements in a map
     */
    private countElements;
    /**
     * Format dry-run results for display
     */
    private formatDryRunResults;
    /**
     * Execute the sync actions
     */
    private executeSyncActions;
    /**
     * Download element from GitHub and save locally
     * SECURITY: Added audit logging for GitHub operations
     */
    private downloadAndSaveElement;
    /**
     * Delete local element
     * SECURITY: Added audit logging for deletion operations
     */
    private deleteLocalElement;
    /**
     * Get GitHub token from auth manager
     */
    private getGitHubToken;
}
//# sourceMappingURL=PortfolioPullHandler.d.ts.map