import colors from 'colors';
import { MarkugenOptions } from './markugenoptions';
import { MarkugenDetails } from './markugendetails';
import { PdfOptions } from './pdfgenerator';
import { HtmlOptions } from './htmlgenerator';
export * from './markugendetails';
export * from './htmlgenerator';
export * from './pdfgenerator';
export * from './markugenoptions';
export * from './utils';
export interface OutputLabel {
    label: string;
    color?: colors.Color;
    ignoreQuiet?: boolean;
}
export default class Markugen {
    /**
     * The version of Markugen
     */
    static readonly version: string;
    /**
     * The name of Markugen
     */
    static readonly name: string;
    /**
     * The home page of Markugen
     */
    static readonly homepage: string;
    /**
     * Root path to the Markugen package
     */
    readonly root: string;
    /**
     * Set to true if this is being ran from the cli
     */
    private _options;
    /**
     * Constructs a new instance with the given {@link options}.
     */
    constructor(options?: MarkugenOptions);
    /**
     * @returns the current configuration options
     */
    get options(): MarkugenOptions;
    /**
     * Sets the configuration options
     */
    set options(options: MarkugenOptions);
    /**
     * This is a synchronous version of {@link generate}. Calling this version
     * will ignore the {@link HtmlOptions.pdf} flag and only generate html output.
     * See {@link generate} for more details.
     * @returns the paths to all generated pages, the html if format === 'string', or
     * undefined if an error occurred
     */
    mdtohtml(options: HtmlOptions & MarkugenOptions): string | string[] | undefined;
    /**
     * Generates PDF documents for the given {@link PdfOptions options}.
     * @param options the {@link PdfOptions} for generation
     * @returns a list of files that were generated
     */
    htmltopdf(options: PdfOptions & MarkugenOptions): Promise<string[]>;
    /**
     * Generates the HTML documentation and PDF files if {@link HtmlOptions.pdf}
     * is true.
     * @returns the paths to all generated pages, the html if format === 'string', or
     * undefined if an error occurred
     */
    generate(options: HtmlOptions & MarkugenOptions): Promise<string | string[] | undefined>;
    /**
     * Starts a console group
     */
    group(...args: any[]): void;
    /**
     * Ends a console group
     */
    groupEnd(): void;
    /**
     * Use in place of console.log so the app can handle coloring
     * and any cli options that were given
     */
    log(label: OutputLabel | string, ...args: any[]): void;
    /**
     * Use in place of console.log so the app can handle coloring
     * and any cli options that were given
     */
    warning(...args: any[]): void;
    /**
     * Outputs the given error message
     * @param e the error to log
     */
    error(e: Error): void;
    /**
     * Escapes all markdown special characters in the given value and returns
     * the new string.
     */
    static escape(md: any): string;
    /**
     * Returns an object representing the Markugen properties
     */
    static toObject(date?: Date): MarkugenDetails;
    /**
     * Attempts to locate an executable for Google Chrome
     * @returns the path to chrome if found, else returns undefined
     */
    static findChrome(): string | undefined;
    /**
     * Attempts to locate an executable for Google Chrome on Windows
     * @returns the path to chrome if found, else returns undefined
     */
    static findChromeWindows(): string | undefined;
    /**
     * Attempts to locate an executable for Google Chrome on Mac
     * @returns the path to chrome if found, else returns undefined
     */
    static findChromeMac(): string | undefined;
    /**
     * Attempts to locate an executable for Google Chrome on Linux
     * @returns the path to chrome if found, else returns undefined
     */
    static findChromeLinux(): string | undefined;
}
