export default class Logger {
    /**
     * Runs constructor.
     * @param {string | object} object - Object.
     * @param {object} args - Options object.
     * @param {import("./configuration.js").default} [args.configuration] - Configuration instance.
     * @param {boolean} [args.debug] - Whether debug.
     * @param {import("./configuration-types.js").LoggingConfiguration} [args.loggingConfiguration] - Logging configuration.
     */
    constructor(object: string | object, { configuration, debug, loggingConfiguration, ...restArgs }?: {
        configuration?: import("./configuration.js").default | undefined;
        debug?: boolean | undefined;
        loggingConfiguration?: import("./configuration-types.js").LoggingConfiguration | undefined;
    });
    _debug: boolean;
    _configuration: import("./configuration.js").default | undefined;
    _loggingConfiguration: import("./configuration-types.js").LoggingConfiguration | undefined;
    _subject: string;
    _object: object | undefined;
    /**
     * Runs get configuration.
     * @returns {import("./configuration.js").default} - The configuration.
     */
    getConfiguration(): import("./configuration.js").default;
    /**
     * Runs safe configuration.
     * @returns {import("./configuration.js").default | undefined} - The safe configuration.
     */
    _safeConfiguration(): import("./configuration.js").default | undefined;
    /**
     * Runs is level enabled.
     * @param {LogLevel} level - Level.
     * @returns {boolean} - Whether any configured output emits this level.
     */
    isLevelEnabled(level: LogLevel): boolean;
    /**
     * Runs debug.
     * @param {Array<?>} messages - Messages.
     * @returns {Promise<void>} - Resolves when complete.
     */
    debug(...messages: Array<unknown>): Promise<void>;
    /**
     * Runs info.
     * @param {Array<?>} messages - Messages.
     * @returns {Promise<void>} - Resolves when complete.
     */
    info(...messages: Array<unknown>): Promise<void>;
    /**
     * Runs debug low level.
     * @param {Array<?>} messages - Messages.
     * @returns {Promise<void>} - Resolves when complete.
     */
    debugLowLevel(...messages: Array<unknown>): Promise<void>;
    /**
     * Runs log.
     * @param {Array<?>} messages - Messages.
     * @returns {Promise<void>} - Resolves when complete.
     */
    log(...messages: Array<unknown>): Promise<void>;
    /**
     * Runs error.
     * @param {Array<?>} messages - Messages.
     * @returns {Promise<void>} - Resolves when complete.
     */
    error(...messages: Array<unknown>): Promise<void>;
    /**
     * Runs set debug.
     * @param {boolean} newValue - New value.
     * @returns {void} - No return value.
     */
    setDebug(newValue: boolean): void;
    warn(...args: Parameters<typeof functionOrMessages>): Promise<void>;
    /**
     * Runs write.
     * @param {object} args - Options object.
     * @param {LogLevel} args.level - Level.
     * @param {Parameters<typeof functionOrMessages>} args.messages - Messages.
     * @returns {Promise<void>} - Resolves when complete.
     */
    _write({ level, messages }: {
        level: LogLevel;
        messages: Parameters<typeof functionOrMessages>;
    }): Promise<void>;
}
/**
 * LogLevel type.
 */
export type LogLevel = "debug-low-level" | "debug" | "info" | "warn" | "error";
/**
 * Runs function or messages.
 * @param {...?|function() : Array<?>} messages - Messages.
 * @returns {Array<?>} - Either the function result or the messages
 */
declare function functionOrMessages(...messages: (unknown | (() => Array<unknown>))[]): Array<unknown>;
export {};
//# sourceMappingURL=logger.d.ts.map