/**
 * CLI logger wrapping `Logger` with semantic output methods.
 *
 * Why wrapper, not subclass: Logger has variadic `...args` methods, CLI adds
 * single-string semantic methods. Mixing calling conventions on one class is confusing.
 * Composition keeps both APIs clean.
 *
 * Why Logger prefixes for error/warn: Unifies error/warn visual style across CLI
 * and backend. CLI-specific methods (success/skip/step/header) add their own semantic
 * prefixes via `logger.info()`.
 *
 * @module
 */
import { Logger } from '@fuzdev/fuz_util/log.js';
export interface CliLogger {
    /** Logs an error via Logger (gets Logger's error prefix). */
    error: (...args: Array<unknown>) => void;
    /** Logs a warning via Logger (gets Logger's warn prefix). */
    warn: (...args: Array<unknown>) => void;
    /** Logs info via Logger (gets Logger's label prefix). */
    info: (...args: Array<unknown>) => void;
    /** Logs debug via Logger (gets Logger's debug prefix). */
    debug: (...args: Array<unknown>) => void;
    /** Logs raw output via Logger (no prefix, no level filtering). */
    raw: (...args: Array<unknown>) => void;
    /** Logs a success message with `[done]` prefix at info level. */
    success: (msg: string) => void;
    /** Logs a skip message with `[skip]` prefix at info level. */
    skip: (msg: string) => void;
    /** Logs a step message with `==>` prefix at info level. */
    step: (msg: string) => void;
    /** Logs a header with `=== title ===` decoration at info level. */
    header: (title: string) => void;
    /** Logs a dimmed message at info level. */
    dim: (msg: string) => void;
    /** The underlying Logger instance. */
    logger: Logger;
}
/**
 * Creates a CLI logger wrapping a Logger with semantic output methods.
 *
 * @param logger - the Logger instance to wrap
 * @returns a `CliLogger` with CLI semantic methods mapped to Logger levels
 */
export declare const create_cli_logger: (logger: Logger) => CliLogger;
//# sourceMappingURL=logger.d.ts.map