// Type definitions
type LogSymbols = {
    fail: string;
    info: string;
    success: string;
    warn: string;
};
type LoggerMethods = {
    [K in keyof typeof console]: (typeof console)[K] extends (...args: infer A) => any ? (...args: A) => Logger : (typeof console)[K];
};
interface Task {
    run<T>(f: () => T): T;
}
export type { LogSymbols, LoggerMethods, Task };
export declare const LOG_SYMBOLS: any;
export declare const incLogCallCountSymbol: unique symbol;
export declare const lastWasBlankSymbol: unique symbol;
/**
 * Custom Logger class that wraps console with additional features.
 * Supports indentation, symbols, and blank line tracking.
 */
/*@__PURE__*/
export declare class Logger {
    #private;
    static LOG_SYMBOLS: any;
    constructor(...args: any[]);
    /**
     * Get the current log call count.
     */
    get logCallCount(): number;
    /**
     * Increment the log call count.
     */
    [incLogCallCountSymbol](): this;
    /**
     * Set whether the last logged line was blank.
     */
    [lastWasBlankSymbol](value: any): this;
    /**
     * Log an assertion.
     */
    assert(value: any, ...message: any[]): this;
    /**
     * Clear the console.
     */
    clear(): this;
    /**
     * Log a count for the given label.
     */
    count(label?: string): this;
    /**
     * Create a task with a given name.
     */
    createTask(name: string): Task;
    /**
     * Decrease indentation level.
     */
    dedent(spaces?: number): this;
    /**
     * Display an object's properties.
     */
    dir(obj: any, options?: any): this;
    /**
     * Display data as XML.
     */
    dirxml(...data: any[]): this;
    /**
     * Log an error message.
     */
    error(...args: any[]): this;
    /**
     * Log a newline to stderr if last line wasn't blank.
     */
    errorNewline(): this;
    /**
     * Log a failure message with symbol.
     */
    fail(...args: any[]): this;
    /**
     * Start a new log group.
     */
    group(...label: any[]): this;
    /**
     * Start a new collapsed log group (alias for group).
     */
    // groupCollapsed is an alias of group.
    // https://nodejs.org/api/console.html#consolegroupcollapsed
    groupCollapsed(...label: any[]): this;
    /**
     * End the current log group.
     */
    groupEnd(): this;
    /**
     * Increase indentation level.
     */
    indent(spaces?: number): this;
    /**
     * Log an info message with symbol.
     */
    info(...args: any[]): this;
    /**
     * Log a message.
     */
    log(...args: any[]): this;
    /**
     * Log a newline to stdout if last line wasn't blank.
     */
    logNewline(): this;
    /**
     * Reset indentation to zero.
     */
    resetIndent(): this;
    /**
     * Log a success message with symbol.
     */
    success(...args: any[]): this;
    /**
     * Display data in a table format.
     */
    table(tabularData: any, properties?: readonly string[]): this;
    /**
     * End a timer and log the elapsed time.
     */
    timeEnd(label?: string): this;
    /**
     * Log the current timer value.
     */
    timeLog(label?: string, ...data: any[]): this;
    /**
     * Log a stack trace.
     */
    trace(message?: any, ...args: any[]): this;
    /**
     * Log a warning message with symbol.
     */
    warn(...args: any[]): this;
    /**
     * Write to stdout without a newline or indentation.
     */
    write(text: string): this;
}
export declare const logger: Logger;
