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 * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js)
11 *  - (c) John MacFarlane
12 *
13 * For the full copyright and license information, please view the LICENSE
14 * file that was distributed with this source code.
15 */
16
17namespace League\CommonMark\Delimiter;
18
19use League\CommonMark\Node\Inline\AbstractStringContainer;
20
21interface DelimiterInterface
22{
23    public function canClose(): bool;
24
25    public function canOpen(): bool;
26
27    public function isActive(): bool;
28
29    public function setActive(bool $active): void;
30
31    public function getChar(): string;
32
33    public function getIndex(): ?int;
34
35    public function getNext(): ?DelimiterInterface;
36
37    public function setNext(?DelimiterInterface $next): void;
38
39    public function getLength(): int;
40
41    public function setLength(int $length): void;
42
43    public function getOriginalLength(): int;
44
45    public function getInlineNode(): AbstractStringContainer;
46
47    public function getPrevious(): ?DelimiterInterface;
48
49    public function setPrevious(?DelimiterInterface $previous): void;
50}
51