package de.gecheckt.pdf.umbenenner.application.port.out;

/**
 * Sealed result type for {@link TargetFolderPort#resolveUniqueFilename(String)}.
 * <p>
 * Permits exactly three outcomes:
 * <ul>
 *   <li>{@link ResolvedTargetFilename} — the first available unique filename was determined.</li>
 *   <li>{@link ExistingIdenticalTargetFile} — the base name already exists in the target folder
 *       and the existing file is byte-for-byte identical to the source document; no new copy
 *       is needed.</li>
 *   <li>{@link TargetFolderTechnicalFailure} — the target folder could not be accessed.</li>
 * </ul>
 */
public sealed interface TargetFilenameResolutionResult
        permits ResolvedTargetFilename, ExistingIdenticalTargetFile, TargetFolderTechnicalFailure {
}
