1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\Console\Style;
13
14/**
15 * Output style helpers.
16 *
17 * @author Kevin Bond <kevinbond@gmail.com>
18 */
19interface StyleInterface
20{
21    /**
22     * Formats a command title.
23     */
24    public function title(string $message);
25
26    /**
27     * Formats a section title.
28     */
29    public function section(string $message);
30
31    /**
32     * Formats a list.
33     */
34    public function listing(array $elements);
35
36    /**
37     * Formats informational text.
38     *
39     * @param string|array $message
40     */
41    public function text($message);
42
43    /**
44     * Formats a success result bar.
45     *
46     * @param string|array $message
47     */
48    public function success($message);
49
50    /**
51     * Formats an error result bar.
52     *
53     * @param string|array $message
54     */
55    public function error($message);
56
57    /**
58     * Formats an warning result bar.
59     *
60     * @param string|array $message
61     */
62    public function warning($message);
63
64    /**
65     * Formats a note admonition.
66     *
67     * @param string|array $message
68     */
69    public function note($message);
70
71    /**
72     * Formats a caution admonition.
73     *
74     * @param string|array $message
75     */
76    public function caution($message);
77
78    /**
79     * Formats a table.
80     */
81    public function table(array $headers, array $rows);
82
83    /**
84     * Asks a question.
85     *
86     * @return mixed
87     */
88    public function ask(string $question, ?string $default = null, callable $validator = null);
89
90    /**
91     * Asks a question with the user input hidden.
92     *
93     * @return mixed
94     */
95    public function askHidden(string $question, callable $validator = null);
96
97    /**
98     * Asks for confirmation.
99     *
100     * @return bool
101     */
102    public function confirm(string $question, bool $default = true);
103
104    /**
105     * Asks a choice question.
106     *
107     * @param string|int|null $default
108     *
109     * @return mixed
110     */
111    public function choice(string $question, array $choices, $default = null);
112
113    /**
114     * Add newline(s).
115     */
116    public function newLine(int $count = 1);
117
118    /**
119     * Starts the progress output.
120     */
121    public function progressStart(int $max = 0);
122
123    /**
124     * Advances the progress output X steps.
125     */
126    public function progressAdvance(int $step = 1);
127
128    /**
129     * Finishes the progress output.
130     */
131    public function progressFinish();
132}
133