, * excluded_paths?: list, * filter: array, * flash_bag: array, * presets: array, * plugins: array, * themes: array, * } * * @phpstan-type PresetType array{ * type: string, * title: string, * message: string, * options: array, * } * * @phpstan-type PluginType array{ * scripts?: string[], * styles?: string[], * options?: array, * } * * @phpstan-type ThemeType array{ * scripts?: string[], * styles?: string[], * options?: array, * } */ interface Repository { /** * Get a configuration value. * * This stub provides detailed return type information for PHPFlasher's * configuration structure, enabling better static analysis. * * @param string[]|string $key The configuration key * @param mixed $default Default value if key doesn't exist * * @return mixed The configuration value with precise type information for PHPFlasher keys * * @phpstan-return ($key is 'flasher' ? ConfigType : * ($key is 'flasher.default' ? string : * ($key is 'flasher.main_script' ? string : * ($key is 'flasher.filter' ? array : * ($key is 'flasher.presets' ? array : * ($key is 'flasher.plugins' ? array : * ($key is 'flasher.themes' ? array : * ($key is 'flasher.flash_bag' ? array : * ($key is 'flasher.excluded_paths' ? list : * mixed))))))))) */ public function get(string|array $key, mixed $default = null): mixed; }