$tokens * @param array $tokenLogprobs * @param array|null $topLogprobs * @param array $textOffset */ private function __construct( public readonly array $tokens, public readonly array $tokenLogprobs, public readonly ?array $topLogprobs, public readonly array $textOffset, ) { } /** * @param array{tokens: array, token_logprobs: array, top_logprobs: array|null, text_offset: array} $attributes */ public static function from(array $attributes): self { return new self( $attributes['tokens'], $attributes['token_logprobs'], $attributes['top_logprobs'], $attributes['text_offset'], ); } /** * @return array{tokens: array, token_logprobs: array, top_logprobs: array|null, text_offset: array} */ public function toArray(): array { return [ 'tokens' => $this->tokens, 'token_logprobs' => $this->tokenLogprobs, 'top_logprobs' => $this->topLogprobs, 'text_offset' => $this->textOffset, ]; } }