<?php

declare(strict_types=1);

namespace apexl\Io\interfaces;

interface OutputManagerInterface
{
    public const string HOOK__ADD_RESPONSE = 'output_manager.add_response';
    public const string HOOK__ADD_MESSAGE = 'output_manager.add_message';
    public const string HOOK__ADD_METADATA = 'output_manager.add_metadata';

    public function addMessage(
        string $name,
        string $type,
        string $content,
        string $icon = '',
        ?int $timeout = null,
        ?string $id = null
    ): void;
}
