<?php 
 
/* 
 * This file is part of Chevere. 
 * 
 * (c) Rodolfo Berrios <[email protected]> 
 * 
 * For the full copyright and license information, please view the LICENSE 
 * file that was distributed with this source code. 
 */ 
 
declare(strict_types=1); 
 
namespace Chevere\VarDump\Interfaces; 
 
/** 
 * Describes the component in charge of processing a variable of a known type. 
 */ 
interface ProcessorInterface 
{ 
    /** 
     * Provides the variable type (primitive). 
     */ 
    public function type(): string; 
 
    /** 
     * Provides info about the variable like `size=1`, `length=6`, 'Object #id'. 
     */ 
    public function info(): string; 
 
    /** 
     * Provides a highlighted type. 
     */ 
    public function typeHighlighted(): string; 
 
    /** 
     * Highlights the given operator `$string`. 
     */ 
    public function highlightOperator(string $string): string; 
 
    /** 
     * Highlights and wraps in parentheses the given `$string`. 
     */ 
    public function highlightParentheses(string $string): string; 
 
    /** 
     * Write the dump to the stream. 
     */ 
    public function write(): void; 
} 
 
 |