/** * File Organizer MCP Server v3.4.2 * Organizer Service */ import type { FileWithSize, OrganizeAction, OrganizationPlan } from "../types.js"; import { CategorizerService } from "./categorizer.service.js"; import { MetadataService } from "./metadata.service.js"; export type ConflictStrategy = "rename" | "skip" | "overwrite" | "overwrite_if_newer"; export interface OrganizeOptions { dryRun?: boolean; conflictStrategy?: ConflictStrategy; useContentAnalysis?: boolean; } export interface OrganizeResult { statistics: Record; actions: OrganizeAction[]; errors: string[]; errorCount: number; successCount: number; aborted: boolean; } /** * Organizer Service - file organization logic */ export declare class OrganizerService { private categorizer; private metadataService; constructor(categorizer?: CategorizerService, metadataService?: MetadataService); /** * Generate a plan for organization without moving files * @param directory - Target directory for organization * @param files - Array of files with size information to process * @param conflictStrategy - Strategy for handling file name conflicts * @param conflictStrategy.rename - Append counter to filename (e.g., file_1.txt) * @param conflictStrategy.skip - Skip files with conflicts * @param conflictStrategy.overwrite - Replace existing files * @param conflictStrategy.overwrite_if_newer - Only overwrite if source is newer * @example * ```ts * const plan = await service.generateOrganizationPlan( * '/downloads', * files, * 'rename' * ); * ``` * @returns Promise - Organization plan with moves, categoryCounts, skippedFiles tracking, conflicts, and warnings */ generateOrganizationPlan(directory: string, files: FileWithSize[], conflictStrategy?: ConflictStrategy, useContentAnalysis?: boolean): Promise; /** * Organize files into category folders */ organize(directory: string, files: FileWithSize[], options?: OrganizeOptions): Promise; } //# sourceMappingURL=organizer.service.d.ts.map