import type { TextStyle, ViewStyle, ImageStyle } from 'react-native'; /** * Text styles for markdown elements */ export interface MarkdownTextStyles { /** Default text style */ text?: TextStyle; /** Heading 1 */ heading1?: TextStyle; /** Heading 2 */ heading2?: TextStyle; /** Heading 3 */ heading3?: TextStyle; /** Heading 4 */ heading4?: TextStyle; /** Heading 5 */ heading5?: TextStyle; /** Heading 6 */ heading6?: TextStyle; /** Bold text */ strong?: TextStyle; /** Italic text */ emphasis?: TextStyle; /** Strikethrough text */ strikethrough?: TextStyle; /** Link text */ link?: TextStyle; /** Inline code */ codeInline?: TextStyle; /** Code block text */ codeBlock?: TextStyle; /** Blockquote text */ blockquote?: TextStyle; /** List item text */ listItem?: TextStyle; /** Table cell text */ tableCell?: TextStyle; /** Table header text */ tableHeader?: TextStyle; } /** * Container styles for markdown elements */ export interface MarkdownContainerStyles { /** Document container */ document?: ViewStyle; /** Paragraph container */ paragraph?: ViewStyle; /** Blockquote container */ blockquoteContainer?: ViewStyle; /** Code block container */ codeBlockContainer?: ViewStyle; /** List container */ list?: ViewStyle; /** List item container */ listItemContainer?: ViewStyle; /** Table container */ table?: ViewStyle; /** Table row */ tableRow?: ViewStyle; /** Table cell container */ tableCellContainer?: ViewStyle; /** Image container */ imageContainer?: ViewStyle; /** Horizontal rule */ thematicBreak?: ViewStyle; /** Task list item checkbox */ checkbox?: ViewStyle; /** Checked checkbox */ checkboxChecked?: ViewStyle; } /** * Image styles */ export interface MarkdownImageStyles { /** Default image style */ image?: ImageStyle; } /** * Syntax highlighting configuration options */ export interface SyntaxHighlightingOptions { /** Enable syntax highlighting (default: true if available) */ enabled?: boolean; /** Theme object from react-syntax-highlighter/styles */ theme?: object; /** Which highlighter to use: 'hljs' or 'prism' (default: 'hljs') */ highlighter?: 'hljs' | 'prism'; /** Font size in pixels (default: 14) */ fontSize?: number; /** Font family for code text */ fontFamily?: string; } /** * Complete theme interface */ export interface MarkdownTheme { /** Text styles */ textStyles: MarkdownTextStyles; /** Container styles */ containerStyles: MarkdownContainerStyles; /** Image styles */ imageStyles: MarkdownImageStyles; /** Colors */ colors: { /** Primary text color */ text: string; /** Background color */ background: string; /** Link color */ link: string; /** Code background color */ codeBackground: string; /** Blockquote border color */ blockquoteBorder: string; /** Table border color */ tableBorder: string; /** Horizontal rule color */ hr: string; }; /** Spacing values */ spacing: { /** Paragraph margin */ paragraph: number; /** List item indent */ listIndent: number; /** Code block padding */ codeBlockPadding: number; /** Blockquote padding */ blockquotePadding: number; /** Table cell padding */ tableCellPadding: number; }; /** Syntax highlighting options for code blocks */ syntaxHighlighting?: SyntaxHighlightingOptions; } /** * Deep partial type for theme customization */ export type PartialMarkdownTheme = { [K in keyof MarkdownTheme]?: K extends 'syntaxHighlighting' ? Partial : Partial; }; //# sourceMappingURL=theme.d.ts.map