/**
 * Options for file operations
 */
export interface FileOperationOptions {
    patterns?: string[];
    all?: boolean;
    dryRun?: boolean;
    verbose?: boolean;
    force?: boolean;
    includeGitignored?: boolean;
}
/**
 * Result of a file operation
 */
export interface FileOperationResult {
    successful: string[];
    failed: Array<{
        file: string;
        error: string;
    }>;
    skipped: string[];
    quotaBlocked: string[];
    totalFiles: number;
}
/**
 * Service for handling common file operations (lock/unlock)
 * Eliminates code duplication between lock and unlock commands
 */
export declare class FileOperationService {
    private adapter;
    /**
     * Process files for locking or unlocking
     * DRY principle - shared logic for both operations
     */
    processFiles(operation: 'lock' | 'unlock', options: FileOperationOptions): Promise<FileOperationResult>;
    /**
     * Get list of files to process based on options
     */
    private getFilesToProcess;
    /**
     * Display operation start message
     */
    private displayOperationStart;
    /**
     * Display operation summary
     */
    displaySummary(operation: 'lock' | 'unlock', result: FileOperationResult, options: FileOperationOptions): Promise<void>;
    /**
     * Display helpful suggestions based on error types
     */
    private displayErrorSuggestions;
    /**
     * Display conversion message when quota is exceeded
     */
    private displayConversionMessage;
}
//# sourceMappingURL=FileOperationService.d.ts.map