import type { ConsolaInstance, PromptOptions } from "consola";
import type { LoggerOptions } from "./types.js";
type SelectOption = {
    label: string;
    value: string;
    hint?: string;
};
export declare class Logger {
    private static instance;
    consola: ConsolaInstance;
    private reporters;
    private options;
    constructor(options?: LoggerOptions, injectedConsola?: ConsolaInstance);
    private shouldLog;
    static getInstance(options?: LoggerOptions): Logger;
    /**
     * Create a new logger with additional context
     */
    withContext(context: Record<string, any>): Logger;
    setLevel(level: number): void;
    end(): Promise<void>;
    prompt(message: string, options: PromptOptions | undefined): Promise<string | boolean | SelectOption | (string | SelectOption)[]>;
    /**
     * Debug level logging - improved to handle console-like inputs
     * Can be called like: logger.debug("Message", { data }, error)
     */
    debug(message: any, ...args: any[]): void;
    /**
     * Info level logging - improved to handle console-like inputs
     * Can be called like: logger.info("Message", { data }, error)
     */
    info(message: any, ...args: any[]): void;
    /**
     * Success level logging - improved to handle console-like inputs
     * Can be called like: logger.success("Message", { data }, error)
     */
    success(message: any, ...args: any[]): void;
    /**
     * Warning level logging - improved to handle console-like inputs
     * Can be called like: logger.warn("Message", { data }, error)
     */
    warn(message: any, ...args: any[]): void;
    /**
     * Error level logging - improved to handle console-like inputs
     * Can be called like: logger.error("Message", error, { data })
     * or: logger.error(error) or logger.error("Message", { error })
     */
    error(message: any, ...args: any[]): void;
    /**
     * Fatal level logging - improved to handle console-like inputs
     * Can be called like: logger.fatal("Message", error, { data })
     */
    fatal(message: any, ...args: any[]): void;
    /**
     * Trace level logging - improved to handle console-like inputs
     * Can be called like: logger.trace("Message", { data }, error)
     */
    trace(message: any, ...args: any[]): void;
    /**
     * Generic logging method - improved to handle console-like inputs
     * Can be called like: logger.log("Message", { data }, error)
     */
    log(message: any, ...args: any[]): void;
}
export {};
