1<?php declare(strict_types=1);
2
3namespace PhpParser\Node\Stmt;
4
5use PhpParser\Node\Name;
6use PhpParser\Node\Stmt;
7use PhpParser\Node\UseItem;
8
9class GroupUse extends Stmt {
10    /**
11     * @var Use_::TYPE_* Type of group use
12     */
13    public int $type;
14    /** @var Name Prefix for uses */
15    public Name $prefix;
16    /** @var UseItem[] Uses */
17    public array $uses;
18
19    /**
20     * Constructs a group use node.
21     *
22     * @param Name $prefix Prefix for uses
23     * @param UseItem[] $uses Uses
24     * @param Use_::TYPE_* $type Type of group use
25     * @param array<string, mixed> $attributes Additional attributes
26     */
27    public function __construct(Name $prefix, array $uses, int $type = Use_::TYPE_NORMAL, array $attributes = []) {
28        $this->attributes = $attributes;
29        $this->type = $type;
30        $this->prefix = $prefix;
31        $this->uses = $uses;
32    }
33
34    public function getSubNodeNames(): array {
35        return ['type', 'prefix', 'uses'];
36    }
37
38    public function getType(): string {
39        return 'Stmt_GroupUse';
40    }
41}
42