/// <reference types="markdown-it" />
import MarkdownIt from 'markdown-it/lib';
interface OptCssNames {
    // ref (all); 'a' html tag
    wiki: string;
    invalid: string;
    // kind
    attr: string;
    link: string;
    type: string;
    embed: string;
    reftype: string;
    doctype: string;
    // attr
    attrbox: string;
    attrboxTitle: string;
    // embed
    embedWrapper: string;
    embedTitle: string;
    embedLink: string;
    linkIcon: string;
    embedContent: string;
    embedLinkIcon: string;
    // media kind
    embedMedia: string;
    embedAudio: string;
    embedDoc: string;
    embedImage: string;
    embedVideo: string;
}
interface OptAttr {
    enable: boolean;
    render: boolean;
    title: string;
}
interface OptLink {
    enable: boolean;
}
interface OptEmbed {
    enable: boolean;
    title: string;
    errorContent: string;
}
interface WikiRefsOptions extends MarkdownIt.Options {
    prepFile?: (env: any) => void;
    // render functions    // function declaration expectations below...
    resolveHtmlText: (env: any, fname: string) => string | undefined;
    resolveHtmlHref: (env: any, fname: string) => string | undefined;
    resolveDocType?: (env: any, fname: string) => string | undefined;
    // embed-only
    resolveEmbedContent: (env: any, fname: string) => string | undefined;
    // metadata functions
    addAttr?: (env: any, attrtype: string, fname: string) => void;
    addLink?: (env: any, linktype: string, fname: string) => void;
    addEmbed?: (env: any, fname: string) => void;
    // render opts
    baseUrl: string;
    cssNames: OptCssNames;
    // wiki kind options
    attrs: OptAttr;
    links: OptLink;
    embeds: OptEmbed;
}
interface WikiAttrsOptions extends MarkdownIt.Options {
    prepFile?: (env: any) => void;
    // render functions    // function declaration expectations below...
    resolveHtmlText: (env: any, fname: string) => string | undefined;
    resolveHtmlHref: (env: any, fname: string) => string | undefined;
    resolveDocType?: (env: any, fname: string) => string | undefined;
    // metadata functions
    addAttr?: (env: any, attrtype: string, fname: string) => void;
    // render opts
    baseUrl: string;
    cssNames: OptCssNames;
    // wiki kind options
    attrs: OptAttr;
}
interface WikiLinksOptions extends MarkdownIt.Options {
    prepFile?: (env: any) => void;
    // render functions    // function declaration expectations below...
    resolveHtmlText: (env: any, fname: string) => string | undefined;
    resolveHtmlHref: (env: any, fname: string) => string | undefined;
    resolveDocType?: (env: any, fname: string) => string | undefined;
    // metadata functions
    addLink?: (env: any, linktype: string, fname: string) => void;
    // render opts
    baseUrl: string;
    cssNames: OptCssNames;
    // wiki kind options
    links: OptLink;
}
interface WikiEmbedsOptions extends MarkdownIt.Options {
    prepFile?: (env: any) => void;
    // render functions    // function declaration expectations below...
    resolveHtmlText: (env: any, fname: string) => string | undefined;
    resolveHtmlHref: (env: any, fname: string) => string | undefined;
    resolveDocType?: (env: any, fname: string) => string | undefined;
    resolveEmbedContent: (env: any, fname: string) => string | undefined;
    // metadata functions
    addEmbed?: (env: any, fname: string) => void;
    // render opts
    baseUrl: string;
    cssNames: OptCssNames;
    // wiki kind options
    embeds: OptEmbed;
}
declare function wikirefs_plugin(md: MarkdownIt, opts?: Partial<WikiRefsOptions>): void;
export type { WikiRefsOptions, WikiAttrsOptions, WikiLinksOptions, WikiEmbedsOptions };
export { wikirefs_plugin as default };
