1<?php
2
3declare(strict_types=1);
4
5/*
6 * This file is part of the league/commonmark package.
7 *
8 * (c) Colin O'Dell <colinodell@gmail.com>
9 *
10 * For the full copyright and license information, please view the LICENSE
11 * file that was distributed with this source code.
12 */
13
14namespace League\CommonMark\Normalizer;
15
16/**
17 * Creates a normalized version of the given input text
18 */
19interface TextNormalizerInterface
20{
21    /**
22     * @param string               $text    The text to normalize
23     * @param array<string, mixed> $context Additional context about the text being normalized (optional)
24     *
25     * $context may include (but is not required to include) the following:
26     *   - `prefix` - A string prefix to prepend to each normalized result
27     *   - `length` - The requested maximum length
28     *   - `node` - The node we're normalizing text for
29     *
30     * Implementations do not have to use or respect any information within that $context
31     */
32    public function normalize(string $text, array $context = []): string;
33}
34