<?php

declare(strict_types=1);

namespace GNexus\GAuth\DTO;

final readonly class TokenSet
{
    /**
     * @param array<int, string> $scopes
     * @param array<string, mixed> $rawPayload
     */
    public function __construct(
        public string $accessToken,
        public ?string $refreshToken,
        public string $tokenType,
        public int $expiresIn,
        public ?\DateTimeImmutable $expiresAt = null,
        public ?int $refreshExpiresIn = null,
        public array $scopes = [],
        public array $rawPayload = [],
    ) {
    }
}
