<?php

declare(strict_types=1);

namespace App\Framework\Pagination;

use App\Framework\Pagination\ValueObjects\PaginationRequest;
use App\Framework\Pagination\ValueObjects\PaginationResponse;

/**
 * Interface for pagination services
 */
interface Paginator
{
    /**
     * Paginate data based on request
     */
    public function paginate(PaginationRequest $request): PaginationResponse;

    /**
     * Check if paginator supports the given request type
     */
    public function supports(PaginationRequest $request): bool;
}
