>|class-string */ public function needs(); /** * Specify which plugins does this plugin extends. * * At each depth level, the traverser will first execute the enter|leave methods of the specified plugins, then immediately execute the enter|leave methods of the current plugin. * * This is preferred, and allows only a single traversal of the AST. * * @return array|string Plugin name(s) * * @psalm-return array>|class-string */ public function extends(); /** * Get configuration key * * @param string $key Key * * @return mixed */ public function getConfig(string $key); /** * Set configuration key * * @param string $key Key * @param mixed $value Value * * @return void */ public function setConfig(string $key, $value): void; }