import { CSSProperties } from 'react'; /** * Convert a string to a URL-safe slug for heading IDs */ declare function slugify(text: string): string; declare function generateHeadingId(text: string, resetTracking?: boolean): string; /** * Reset heading ID tracking (useful for testing or new renders) */ declare function resetHeadingIds(): void; /** * Basic HTML sanitization for markdown content * Removes potentially dangerous attributes and protocols */ /** * Check if a URL uses a dangerous protocol */ declare function isDangerousUrl(url: string): boolean; /** * Sanitize a URL by removing dangerous protocols */ declare function sanitizeUrl(url: string): string; /** * Check if an attribute name is dangerous */ declare function isDangerousAttribute(attr: string): boolean; /** * Sanitize HTML attributes by removing dangerous ones * This is a basic implementation - for production use, consider DOMPurify */ declare function sanitizeAttributes(attributes: Record): Record; /** * Get default sanitization configuration */ declare function getDefaultSanitizationConfig(): { disableParsingRawHTML: boolean; forceBlock: boolean; forceInline: boolean; }; /** * Width-containment styles for markdown-rendered content. * * ## Why these are inline styles and not classes * * Production customer sites are served a **safelist-compiled** Tailwind * stylesheet: a utility class that was not present in the extraction snapshot * ships with no rule at all. Inline styles are immune to that failure mode, so * every guard in this module is expressed as a plain style object. * * ## The failure this prevents * * A single wide descendant (a GFM table, a `
` with a long line, a raw
 * `