<?php

declare(strict_types=1);

namespace App\Services\Supplier;

/**
 * Thin abstraction over Symfony Process used by PlaywrightBridge.
 *
 * Зачем интерфейс: позволяет в тестах подменять Process чисто PHP-ным stub'ом
 * без extending Process — Symfony Process конфликтует с laravel/pao stdout
 * filter и вызывает stream_filter_remove fatal на shutdown.
 */
interface PlaywrightProcessHandle
{
    public function setInput(string $input): self;

    public function setTimeoutSeconds(int $seconds): self;

    public function run(): int;

    public function isSuccessful(): bool;

    public function getOutput(): string;

    public function getErrorOutput(): string;

    public function getExitCode(): int;
}
