/**
 * Public API for `@humanspeak/svelte-markdown`.
 *
 * This module re-exports every symbol that consumers of the package can
 * import.  Exports are organized into the following groups:
 *
 * - **Default export** — the main `SvelteMarkdown` component
 * - **Component helpers** — `Html`, `Unsupported`, and `UnsupportedHTML`
 * - **Filter utilities** — allow/deny helpers for HTML tags and renderers
 * - **Constants** — `defaultRenderers`, `rendererKeys`, `htmlRendererKeys`
 * - **Cache utilities** — `MemoryCache`, `TokenCache`, `tokenCache`
 * - **Types** — `HtmlRenderers`, `Renderers`, `RendererComponent`,
 *   `SvelteMarkdownProps`, `SvelteMarkdownOptions`, `Token`, `TokensList`
 *
 * @see {@link https://markdown.svelte.page} — documentation site
 * @module @humanspeak/svelte-markdown
 */
import { type HtmlRenderers } from './renderers/html/index.js';
import SvelteMarkdown from './SvelteMarkdown.svelte';
import type { BlockquoteSnippetProps, BrSnippetProps, CodeSnippetProps, CodespanSnippetProps, DelSnippetProps, EmSnippetProps, EscapeSnippetProps, HeadingSnippetProps, HrSnippetProps, HtmlSnippetOverrides, HtmlSnippetProps, ImageSnippetProps, LinkSnippetProps, ListItemSnippetProps, ListSnippetProps, ParagraphSnippetProps, RawTextSnippetProps, SnippetOverrides, StreamingChunk, StreamingOffsetChunk, StrongSnippetProps, SvelteMarkdownOptions, SvelteMarkdownProps, TableBodySnippetProps, TableCellSnippetProps, TableHeadSnippetProps, TableRowSnippetProps, TableSnippetProps, TextSnippetProps } from './types.js';
import { defaultRenderers, type RendererComponent, type Renderers, type Token, type TokensList } from './utils/markdown-parser.js';
import type { SanitizeAttributesFn, SanitizeContext, SanitizeUrlFn } from './utils/sanitize.js';
/** The primary markdown rendering component. */
export default SvelteMarkdown;
/** Default HTML tag-to-component map and the unsupported-tag placeholder. */
export { default as Html, UnsupportedHTML } from './renderers/html/index.js';
/** Placeholder component rendered for blocked markdown token types. */
export { Unsupported } from './renderers/index.js';
/**
 * Filter utilities for restricting which HTML tags are rendered.
 *
 * - `allowHtmlOnly`   — allow *only* the listed tags
 * - `excludeHtmlOnly` — block specific tags, allow the rest
 * - `buildUnsupportedHTML` — block every HTML tag
 */
export { allowHtmlOnly, buildUnsupportedHTML, excludeHtmlOnly } from './utils/unsupportedHtmlRenderers.js';
/**
 * Filter utilities for restricting which markdown renderers are active.
 *
 * - `allowRenderersOnly`      — allow *only* the listed renderers
 * - `excludeRenderersOnly`    — block specific renderers, allow the rest
 * - `buildUnsupportedRenderers` — block every markdown renderer
 */
export { allowRenderersOnly, buildUnsupportedRenderers, excludeRenderersOnly } from './utils/unsupportedRenderers.js';
/** Built-in renderer map used when no custom `renderers` prop is provided. */
export { defaultRenderers };
/**
 * Canonical key lists enumerating every valid renderer/HTML tag name.
 *
 * - `rendererKeys`     — markdown renderer keys (excludes `html`)
 * - `htmlRendererKeys`  — supported HTML tag names
 */
export { htmlRendererKeysInternal as htmlRendererKeys, rendererKeysInternal as rendererKeys } from './utils/rendererKeys.js';
/**
 * Cache utilities for parsed markdown tokens.
 *
 * - `MemoryCache` — generic LRU cache
 * - `TokenCache`  — LRU cache specialized for parsed token arrays
 * - `tokenCache`  — shared singleton `TokenCache` instance
 */
export { MemoryCache } from './utils/cache.js';
export { IncrementalParser, type IncrementalUpdateResult } from './utils/incremental-parser.js';
/**
 * URL sanitization utilities for XSS prevention.
 *
 * - `defaultSanitizeUrl`        — protocol allowlist (http, https, mailto, tel, relative)
 * - `defaultSanitizeAttributes` — strips event handlers and sanitizes URL attributes
 * - `unsanitizedUrl`            — passthrough (allows all URLs)
 * - `unsanitizedAttributes`     — passthrough (allows all attributes)
 */
export { defaultSanitizeAttributes, defaultSanitizeUrl, unsanitizedAttributes, unsanitizedUrl } from './utils/sanitize.js';
export { TokenCache, tokenCache } from './utils/token-cache.js';
/** Re-exported `MarkedExtension` type for the `extensions` prop. */
export type { MarkedExtension } from 'marked';
/** Re-exported types for consumer convenience. */
export type { BlockquoteSnippetProps, BrSnippetProps, CodeSnippetProps, CodespanSnippetProps, DelSnippetProps, EmSnippetProps, EscapeSnippetProps, HeadingSnippetProps, HrSnippetProps, HtmlRenderers, HtmlSnippetOverrides, HtmlSnippetProps, ImageSnippetProps, LinkSnippetProps, ListItemSnippetProps, ListSnippetProps, ParagraphSnippetProps, RawTextSnippetProps, RendererComponent, Renderers, SanitizeAttributesFn, SanitizeContext, SanitizeUrlFn, SnippetOverrides, StreamingChunk, StreamingOffsetChunk, StrongSnippetProps, SvelteMarkdownOptions, SvelteMarkdownProps, TableBodySnippetProps, TableCellSnippetProps, TableHeadSnippetProps, TableRowSnippetProps, TableSnippetProps, TextSnippetProps, Token, TokensList };
