import { Application, ContainerReflection, PageEvent, Reflection, ReflectionKind, Renderer } from 'typedoc';
import { MarkdownTheme } from 'typedoc-plugin-markdown';
import { AppiumThemeTemplate } from './template';
/**
 * Name of the theme; used at definition time
 */
export declare const THEME_NAME = "appium";
/**
 * This theme uses everything from `MarkdownTheme` and adds a new section for commands.
 */
export declare class AppiumTheme extends MarkdownTheme {
    #private;
    /**
     * Creates template renderers and registers all {@linkcode Handlebars} helpers.
     * @param renderer - TypeDoc renderer
     *
     * @todo Use declaration merging to add an instance of `AppiumPluginLogger` to `Application`,
     * which we can then reference here.
     */
    constructor(renderer: Renderer);
    /**
     * Special-cases `ExtensionReflection` instances to make the filename shorter and thus better
     * suitable for `mkdocs`.
     * @param reflection Reflection to get URL for
     * @returns String URL
     */
    getUrl(reflection: Reflection): string;
    /**
    /**
     * A lookup of {@linkcode ReflectionKind}s to templates.  It also controls in which directory the output files live.
     *
     * This is part of {@linkcode MarkdownTheme} and adds a new template.
     *
     * If `isLeaf` is `false`, the model gets its own document.
     */
    get mappings(): TemplateMapping[];
}
/**
 * A function which accepts {@linkcode PageEvent} as its model and returns the final markdown.
 */
export type TemplateRenderer = (pageEvent: PageEvent<ContainerReflection>) => string;
/**
 * A mapping of `ReflectionKind` to a template and other metadata.
 *
 * Defined by `MarkdownTheme`.
 */
export type TemplateMapping = {
    kind: ReflectionKind[];
    isLeaf: boolean;
    directory: string;
    template: (pageEvent: PageEvent<ContainerReflection>) => string;
};
export type { AppiumThemeTemplate };
/**
 * Registers {@linkcode AppiumTheme} with TypeDoc.
 * @param app TypeDoc application
 */
export declare function configureTheme(app: Application): Application;
//# sourceMappingURL=index.d.ts.map