// tslint:disable:max-classes-per-file import { MarkdownIt, Token } from 'markdown-it'; import { ComponentType, ReactNode } from 'react'; import { StyleSheet, View } from 'react-native'; export function applyStyle(children: any[], styles: any, type: string): any; export function getUniqueID(): string; export function openUrl(url: string): void; export function hasParents(parents: any[], type: string): boolean; export type RenderFunction = ( node: any, children: ReactNode[], parent: ReactNode, styles: any, ) => ReactNode; export interface RenderRules { [name: string]: RenderFunction; } export const renderRules: RenderRules; export interface MarkdownParser { parse: (value: string, options: any) => Token[]; } export interface ASTNode { type: string; sourceType: string; // original source token name key: string; content: string; tokenIndex: number; index: number; attributes: Record; children: ASTNode[]; } export class AstRenderer { constructor(renderRules: RenderRules, style?: any); getRenderFunction(type: string): RenderFunction; renderNode(node: any, parentNodes: ReadonlyArray): ReactNode; render(nodes: ReadonlyArray): View; } export function parser( source: string, renderer: (node: ASTNode) => View, parser: MarkdownParser, ): any; export function stringToTokens( source: string, markdownIt: MarkdownParser, ): Token[]; export function tokensToAST(tokens: ReadonlyArray): ASTNode[]; interface PluginContainerResult extends Array { 0: A; } export class PluginContainer { constructor(plugin: A, ...options: any[]); toArray(): PluginContainerResult; } export function blockPlugin(md: any, name: string, options: object): any; export const styles: any; export interface MarkdownProps { rules?: RenderRules; style?: StyleSheet.NamedStyles; renderer?: AstRenderer; markdownit?: MarkdownIt; plugins?: Array>; } type MarkdownStatic = React.ComponentType; export const Markdown: MarkdownStatic; export type Markdown = MarkdownStatic; export default Markdown;