import { default as Token } from 'markdown-it/lib/token.mjs';
import { default as Renderer } from 'markdown-it/lib/renderer.mjs';
import { default as MarkdownIt } from 'markdown-it';
export interface GenericDirective {
    type: string;
    label: string;
    href: string;
    attrs: Record<string, any>;
}
/**
 * 解析指令语法，从中提取出各个部分并处理转义，详解见：
 * https://blog.kaciras.com/article/18/add-video-support-to-markdown
 *
 * @param line 待解析的文本
 * @return 包含各个部分的对象
 * @throws 如果给定的文本不符合指令语法
 */
export declare function parseGenericDirective(line: string): GenericDirective;
/**
 * 自定义渲染函数，以 type 作为键，值为渲染函数。
 * 其中 href 已经使用上面的 checkLink 对 XSS 做了检查。
 *
 * 【为何在渲染函数中检查链接】
 * 与传统的 Markdown 语法不同，通用指令旨在支持一系列的扩展功能，其几个片段的意义由指令决定，
 * 解析器只做提取，故只有在渲染函数中才能确定字段是不是链接。
 */
export interface DirectiveMap {
    /**
     * 自定义指令的渲染，属性名对应指令，返回 HTML。
     *
     * @param this MarkdownIt 的渲染器。
     * @param token 要渲染的 Token。
     * @param md MarkdownIt 对象。
     * @param env 用户自定义的对象。
     */
    [type: string]: (this: Renderer, token: Token, md: MarkdownIt, env: any) => string;
}
/**
 * 默认的指令表，有 audio、video 和 gif 类型，简单地渲染为 <audio> 和 <video>
 */
export declare const defaultDirectiveMap: Readonly<DirectiveMap>;
export default function (md: MarkdownIt, map?: Readonly<DirectiveMap>): void;
