import type { RendererThis, Tokens } from 'marked'; /** * Re-export RendererThis from marked for use in extensions */ export type { RendererThis }; /** * Configuration options for the spoiler extension */ export interface SpoilerOptions { /** CSS class name for the spoiler container */ className?: string; /** Prefix for spoiler IDs */ prefixId?: string; /** Custom HTML template for the spoiler */ template?: string | null; /** Function to customize the token before rendering */ customizeToken?: ((token: SpoilerToken) => void) | null; } /** * Theme configuration for spoilers */ export interface SpoilerTheme { /** Background color for the overlay */ overlayBg: string; /** Text color for the overlay */ textColor: string; /** Box shadow for the spoiler */ shadow: string; } /** * Metadata for the spoiler token */ export interface SpoilerMeta { /** Prefix for spoiler IDs */ prefixId: string; /** Title text for the spoiler overlay */ title?: string; /** Subtitle text for the spoiler overlay */ subtitle?: string; /** Theme name */ theme?: string; /** CSS class name */ className: string; /** Custom HTML template */ template?: string | null; } /** * Token for spoiler blocks */ export interface SpoilerToken extends Tokens.Generic { type: 'spoiler'; raw: string; meta: SpoilerMeta; } /** * Parsed properties from spoiler block */ export interface SpoilerProps { /** Title for the spoiler overlay */ title?: string; /** Subtitle for the spoiler overlay */ subtitle?: string; /** Theme name for styling */ theme?: string; [key: string]: string | undefined; } /** * Particle generation result */ export interface ParticleResult { /** HTML content for particles */ particlesContent: string; /** CSS styles for particles */ particleStyles: string; }