<?php

namespace Symfony\Component\Console\Output;

interface OutputInterface
{
    public const VERBOSITY_QUIET = 16;
    public const VERBOSITY_NORMAL = 32;
    public const VERBOSITY_VERBOSE = 64;
    public const VERBOSITY_VERY_VERBOSE = 128;
    public const VERBOSITY_DEBUG = 256;

    public const OUTPUT_NORMAL = 1;
    public const OUTPUT_RAW = 2;
    public const OUTPUT_PLAIN = 4;

    /**
     * @param string|iterable<string> $messages
     * @param int-mask-of<self::VERBOSITY_*|self::OUTPUT_*> $options
     */
    public function write($messages, bool $newline = false, int $options = 0): void;

    /**
     * @param string|iterable<string> $messages
     * @param int-mask-of<self::VERBOSITY_*|self::OUTPUT_*> $options
     */
    public function writeln($messages, int $options = 0): void;
}
