1<?php declare(strict_types=1);
2
3namespace PhpParser\Node\Stmt;
4
5use PhpParser\Node;
6use PhpParser\Node\DeclareItem;
7
8class Declare_ extends Node\Stmt {
9    /** @var DeclareItem[] List of declares */
10    public array $declares;
11    /** @var Node\Stmt[]|null Statements */
12    public ?array $stmts;
13
14    /**
15     * Constructs a declare node.
16     *
17     * @param DeclareItem[] $declares List of declares
18     * @param Node\Stmt[]|null $stmts Statements
19     * @param array<string, mixed> $attributes Additional attributes
20     */
21    public function __construct(array $declares, ?array $stmts = null, array $attributes = []) {
22        $this->attributes = $attributes;
23        $this->declares = $declares;
24        $this->stmts = $stmts;
25    }
26
27    public function getSubNodeNames(): array {
28        return ['declares', 'stmts'];
29    }
30
31    public function getType(): string {
32        return 'Stmt_Declare';
33    }
34}
35