/**
 * Adapted from `@knodes/typedoc-pluginutils`
 *
 * Portions Copyright (c) 2022 KnodesCommunity
 * Licensed MIT
 *
 * @module
 * @see https://github.com/KnodesCommunity/typedoc-plugins/blob/ed5e4e87f5d80abf6352e8de353ea376c4f7db6d/packages/pluginutils/src/plugin-logger.ts
 *
 */
import _ from 'lodash';
import { Logger, LogLevel } from 'typedoc';
export declare class AppiumPluginLogger extends Logger {
    #private;
    /**
     * Namespace to prepend to log messages
     */
    readonly ns: string;
    constructor(logger: Logger, ns: string, logThroughParent?: AppiumPluginParentLogger);
    /**
     * Creates or retrieves a child logger for the given namespace
     * @param parent Parent logger
     * @param ns Namespace
     * @returns Child logger
     */
    static createChildLogger: ((parent: AppiumPluginLogger, ns: string) => AppiumPluginLogger) & _.MemoizedFunction;
    /**
     * Create a new {@link AppiumPluginLogger} for the given context.
     *
     * @param ns - New sub-namespace; will be appended to the current namespace.
     * @returns the new logger.
     */
    createChildLogger(ns: string): AppiumPluginLogger;
    /**
     * Log the given error message.
     *
     * @param text  - The error that should be logged.
     */
    error(text: string, ...args: any[]): void;
    /**
     * Log the given info message.
     *
     * @param text  - The message that should be logged.
     */
    info(text: string, ...args: any[]): void;
    /**
     * Print a log message.
     *
     * Does _not_ support `printf`-style syntax for compatibility with {@linkcode Logger}.
     *
     * @param text  - The message itself.
     * @param level  - The urgency of the log message.
     */
    log(text: string, level: LogLevel): void;
    /**
     * Log the given verbose message.
     *
     * @param text - The message that should be logged.
     */
    verbose(text: string, ...args: any): void;
    /**
     * Log the given warning message.
     *
     * @param text - The warning that should be logged.
     */
    warn(text: string, ...args: any[]): void;
}
/**
 * Used internally by {@link AppiumPluginLogger.createChildLogger} to pass log messages to the parent.
 */
export type AppiumPluginParentLogger = (level: LogLevel, message: string, ...args: any[]) => void;
/**
 * Fallback logger. **Do not use this unless you really mean it.**
 *
 * Prefer to pass a `Logger` or `AppiumPluginLogger` instance to the constructor of the class you
 * are using or the function you are calling.  If this makes the API too cumbersome, consider using this.
 */
export declare const fallbackLogger: AppiumPluginLogger;
//# sourceMappingURL=logger.d.ts.map