HEX
Server: LiteSpeed
System: Linux server334.web-hosting.com 4.18.0-553.124.4.lve.el8.x86_64 #1 SMP Fri May 15 13:02:13 UTC 2026 x86_64
User: richfield (1256)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/richfield/www/rich/vendor/php-flasher/flasher/FlasherInterface.php
<?php

/*
 * This file is part of the PHPFlasher package.
 * (c) Younes KHOUBZA <younes.khoubza@gmail.com>
 */

namespace Flasher\Prime;

use Flasher\Prime\Factory\NotificationFactoryInterface;
use Flasher\Prime\Notification\NotificationBuilderInterface;

/**
 * @mixin NotificationBuilderInterface
 */
interface FlasherInterface
{
    /**
     * Get a driver instance.
     *
     * @param string|null $alias
     *
     * @return NotificationFactoryInterface
     *
     * @throws \InvalidArgumentException
     */
    public function create($alias = null);

    /**
     * Get a driver instance.
     *
     * @param string|null $alias
     *
     * @return NotificationFactoryInterface
     *
     * @throws \InvalidArgumentException
     */
    public function using($alias);

    /**
     * Register a custom driver creator.
     *
     * @param string                                $alias
     * @param callable|NotificationFactoryInterface $factory
     *
     * @return static
     */
    public function addFactory($alias, $factory);

    /**
     * @param array<string, mixed> $criteria
     * @param string               $presenter
     * @param array<string, mixed> $context
     *
     * @return mixed
     *
     * @phpstan-return ($presenter is 'html' ? string : mixed)
     */
    public function render(array $criteria = array(), $presenter = 'html', array $context = array());
}