registerFileHandler(id, { extensions, handleFile }) {
		if (this.#handlers.has(id)) {
			throw new Error(`Handler with id '${id}' is already registered`);
		}

		if (!extensions?.length) {
			throw new Error("extensions array is required");
		}

		if (typeof handleFile !== "function") {
			throw new Error("handleFile function is required");
		}

		// Normalize extensions (remove dots if present, convert to lowercase)
		const normalizedExts = extensions.map((ext) =>
			ext.toLowerCase().replace(/^\./, ""),
		);

		this.#handlers.set(id, {
			extensions: normalizedExts,
			handleFile,
		});
	}
Register a file type handler
@param {string} id - Unique identifier for the handler
@param {Object} options - Handler options
@param {string[]} options.extensions - File extensions to handle (without dots)
@param {function(FileInfo): Promise<void>} options.handleFile - Async function to handle the file
@throws {Error} If id is already registered or required options are missing