<?php

namespace App\Domain\Shared\Domain\Contract;

interface ImageStorageInterface
{
    /**
     * Store images from local file paths into the individual images storage.
     * Used by the scraping flow.
     *
     * @param  string[] $localImagePaths
     * @return string The directory path where images are stored (pagesDirectory)
     */
    public function storeChapterImages(string $targetId, array $localImagePaths): string;

    /**
     * Extract images from a CBZ binary into the individual images storage.
     * Used by the import flow.
     *
     * @return string The directory path where images are stored (pagesDirectory)
     */
    public function extractFromCbz(string $targetId, string $cbzBinary): string;

    /**
     * Count images in a CBZ binary.
     */
    public function countCbzImages(string $cbzBinary): int;
}
