/**
 * @public
 */
export type TextFormatterFn = (value: string) => string;
/**
 * @public
 */
export type TextFormatter = TextFormatterFn | Lowercase<keyof typeof TextFormatters>;
/**
 * @public
 */
export declare namespace TextFormatters {
    /**
     * This function does not apply any formatting to the text.
     *
     * @public
     */
    const DEFAULT: (value: string) => string;
    /**
     * Formats a WhatsApp-style rich text into HTML.
     *
     * This formatter intentionally targets the **practical WhatsApp message syntax** (as commonly typed),
     * not full Markdown. It focuses on predictable rendering for chat-/note-like UIs.
     *
     * ## Supported syntax
     *
     * ### Inline formatting
     * - Bold:
     *   - `*text*` → `<strong>text</strong>`
     * - Italic:
     *   - `_text_` → `<em>text</em>`
     * - Underline:
     *   - `++text++` → `<u>text</u>`
     * - Double-underline:
     *   - `+++text+++` → `<u style="text-decoration-style: double;">text</u>`
     * - Strikethrough:
     *   - `~text~` → `<del>text</del>`
     * - Colored text:
     *   - `{red}text{/red}` → `<span style="color:red;">text</span>`
     *   - Supports any valid CSS color value (named colors, hex, rgb, css-vars etc.)
     *
     * ### Code
     * - Inline code:
     *   - `` `code` `` → `<code>code</code>`
     * - Code block (fenced):
     *   - <code>```multi line```</code> → `<pre><code>...</code></pre>`
     *   - Code content is HTML-escaped and protected first, so formatting markers inside code are not interpreted.
     *
     * ### Block-level syntax (line-based)
     * - Horizontal rule:
     *   - `---` or `***` or `___` (alone on a line) → `<hr>`
     * - Bulleted list items:
     *   - `- item` or `* item` at line start
     *   - Consecutive bullet lines are grouped into a single `<ul>`.
     * - Numbered list items:
     *   - `1. item`, `2. item`, ... at line start
     *   - Consecutive numbered lines are grouped into a single `<ol>`.
     * - Block quotes:
     *   - `> quoted text` at line start
     *   - Consecutive quote lines are grouped into a single `<blockquote>`.
     *
     * ### Autolinks
     * - Explicit links (Markdown-style):
     *   - `[text](url)` → `<a href="url">text</a>`
     * - URLs:
     *   - `http(s)://...` or `ftp://...` → `<a href="...">...</a>`
     * - Email addresses:
     *   - `name@example.com` → `<a href="mailto:name@example.com">...</a>`
     * - Phone numbers (heuristic):
     *   - `+49 ...` / `0123 ...` (digits with spaces/hyphens/parentheses) → `<a href="tel:...">...</a>`
     *
     * ### New lines
     * - Normal lines are separated with `<br>`.
     * - Lists and blockquotes are rendered structurally (no stray `<br>` between `<li>` items).
     *
     * ## Parsing rules and limitations
     * - Code spans/blocks are tokenized **before** any other parsing to prevent accidental formatting inside code.
     * - URLs/emails/phones are tokenized before emphasis so markers can’t break generated `<a href="...">`.
     * - This is not a full WhatsApp renderer (edge cases and platform-specific quirks are intentionally out of scope).
     *
     * ## Security note
     * This formatter outputs HTML. If `input` is user-generated and the result is rendered via `innerHTML`,
     * ensure the output is sanitized/validated according to your app’s security requirements.
     *
     * @public
     */
    const RICHTEXT: TextFormatterFn;
    /**
     * Formats a text into HTML using a **simplified Markdown** syntax.
     *
     * This formatter intentionally implements a pragmatic subset of Markdown that is easy to type,
     * works well in chat-/note-like UIs, and stays predictable. It is **not** a full CommonMark parser.
     *
     * ## Supported syntax
     *
     * ### Inline formatting
     * - **Bold**:
     *   - `**value**` → `<strong>value</strong>`
     *   - `__value__` → `<strong>value</strong>`
     * - *Italic*:
     *   - `*value*` → `<em>value</em>`
     *   - `_value_` → `<em>value</em>`
     * - ~~Strikethrough~~:
     *   - `~~value~~` → `<del>value</del>`
     * - `Inline code`:
     *   - `` `value` `` → `<code>value</code>`
     *
     * ### Code blocks
     * - Fenced code blocks:
     *   - <code>```multi line```</code> → `<pre><code>...</code></pre>`
     *   - The code content is HTML-escaped (e.g. `<` becomes `&lt;`) so it renders as text.
     *
     * ### Links and media
     * - Links:
     *   - `[label](https://example.com)` → `<a href="https://example.com">label</a>`
     * - Email autolinks:
     *   - `<example@example.com>` → `<a href="mailto:example@example.com">example@example.com</a>`
     * - Images:
     *   - `![alt](https://example.com/image.jpg)` → `<img src="..." alt="..."/>`
     *   - `![alt](https://example.com/image.jpg =100x20)` → `<img ... width="100" height="20"/>`
     *   - `![alt](https://example.com/image.jpg =250x)` → `<img ... width="250"/>`
     *   - `![alt](https://example.com/image.jpg =x250)` → `<img ... height="250"/>`
     *
     * ### Block-level syntax (line-based)
     * - Headers:
     *   - `# H1` through `###### H6` → `<h1>..</h1>` … `<h6>..</h6>`
     * - Blockquotes:
     *   - `> value` (multiple consecutive quote lines are grouped into a single `<blockquote>`)
     * - Lists:
     *   - Unordered list items:
     *     - `* item` or `- item` (consecutive items are grouped into one `<ul>`)
     *   - Ordered list items:
     *     - `1. item`, `2. item`, ... (consecutive items are grouped into one `<ol>`)
     *
     * ### New lines
     * - Normal text lines are separated by `<br>`.
     * - New lines inside lists and blockquotes are handled structurally (no stray `<br>` between `<li>` items).
     *
     * ## Parsing rules and limitations
     * - Parsing is intentionally **not** fully CommonMark compliant (delimiter edge-cases, nested emphasis rules, etc.).
     * - Inline formatting is applied **after** block-level parsing.
     * - Code spans / code blocks are **protected first**, so Markdown markers inside code are not interpreted.
     * - URLs inside link/image syntax are restricted to `http(s)://` for simplicity.
     *
     * ## Security note
     * This formatter produces HTML. If `value` is user-generated and you render the result via `innerHTML`,
     * you **must** ensure the output is safe (e.g. sanitize/encode appropriately) to prevent XSS.
     *
     * @public
     */
    const MARKDOWN: TextFormatterFn;
    /**
     * Formats a text into HTML using a **BBCode-like** syntax.
     *
     * This formatter replaces common BBCode tags with their HTML equivalents.
     * It aims to be practical and predictable for UI rendering (forums/chat-like content),
     * not to implement every edge-case of every BBCode dialect.
     *
     * ## Supported tags
     *
     * ### Text formatting
     * - Bold: `[b]value[/b]` → `<strong>value</strong>`
     * - Italic: `[i]value[/i]` → `<em>value</em>`
     * - Underline: `[u]value[/u]` → `<u>value</u>`
     * - Strikethrough: `[s]value[/s]` → `<del>value</del>`
     *
     * ### Code
     * - Code block: `[code]value[/code]` → `<pre><code>value</code></pre>`
     *   - The code content is HTML-escaped, so `<` etc. render as text.
     *   - Code blocks are protected first, so other BBCode tags inside are not interpreted.
     *
     * ### Links & media
     * - URL:
     *   - `[url=http://example.com]label[/url]` → `<a href="http://example.com">label</a>`
     *   - `[url]http://example.com[/url]` → `<a href="http://example.com">http://example.com</a>`
     * - Image:
     *   - `[img]http://example.com/a.jpg[/img]` → `<img src="..." alt=""/>`
     *   - `[img width=100 height=20]http://...[/img]` → `<img src="..." width="100" height="20" />`
     *   - `[img width=250]http://...[/img]` → `<img src="..." width="250" />`
     *   - `[img height=250]http://...[/img]` → `<img src="..." height="250" />`
     * - Email:
     *   - `[email]a@b.com[/email]` → `<a href="mailto:a@b.com">a@b.com</a>`
     *
     * ### Styling
     * - Color:
     *   - `[color=red]value[/color]` → `<span style="color:red;">value</span>`
     * - Size:
     *   - `[size=1]value[/size]` → `<span style="font-size:1em;">value</span>`
     *     (Value is treated as `em` for simplicity.)
     *
     * ### Blocks
     * - Quote:
     *   - `[quote]value[/quote]` → `<blockquote>value</blockquote>`
     * - Lists:
     *   - `[list][*]a[*]b[/list]` → `<ul><li>a</li><li>b</li></ul>`
     *   - `[list=1][*]a[*]b[/list]` → `<ol><li>a</li><li>b</li></ol>`
     *   - Items are recognized via `[*]` (no closing tag required).
     *
     * ### New lines
     * - Remaining new lines are converted to `<br>`.
     * - New lines inside generated `<ul>/<ol>/<blockquote>/<pre>` are handled structurally
     *   to avoid invalid markup like `<ul>...<br><li>...</li>...</ul>`.
     *
     * ## Security note
     * This formatter outputs HTML. If the input is user-generated and the output is rendered
     * via `innerHTML`, sanitize the output HTML to prevent XSS.
     *
     * @public
     */
    const BBCODE: TextFormatterFn;
}
/**
 * @public
 */
export interface IFormatText {
    /**
     * The formatted value.
     */
    value: string;
    /**
     * The raw value without formatting.
     */
    rawValue: string;
}
//# sourceMappingURL=TextFormatter.d.ts.map