/**
 * Output to appropriate console method
 */
declare function output(level: LogLevel, prefix: string, args: unknown[]): void;
/**
 * Create a logger instance
 */
export declare function createLogger(options?: LoggerOptions): Logger;
/**
 * Create a scoped logger for a specific module
 * @example
 * const log = scopedLogger('extractor')
 * log.debug('Parsing file...') // [dtsx:extractor] Parsing file...
 */
export declare function scopedLogger(scope: string): Logger;
/**
 * Set the global log level
 */
export declare function setLogLevel(level: LogLevel): void;
/**
 * Get the current log level
 */
export declare function getLogLevel(): LogLevel;
/**
 * Set the log prefix
 */
export declare function setLogPrefix(prefix: string): void;
/**
 * Enable or disable timestamps
 */
export declare function setTimestamps(enabled: boolean): void;
/**
 * Default logger instance
 */
export declare const logger: Logger;
/**
 * No-op logger for silent mode or testing
 */
export declare const nullLogger: Logger;
export declare interface LoggerOptions {
  level?: LogLevel
  prefix?: string
  timestamps?: boolean
  output?: (level: LogLevel, ...args: unknown[]) => void
}
export declare interface Logger {
  debug: (...args: unknown[]) => void
  info: (...args: unknown[]) => void
  warn: (...args: unknown[]) => void
  error: (...args: unknown[]) => void
  setLevel: (level: LogLevel) => void
  getLevel: () => LogLevel
  child: (scope: string) => Logger
  time: (label: string) => () => void
  progress: (message: string) => void
}
/**
 * Logger abstraction for dtsx
 * Provides configurable logging with verbosity levels and scoped loggers
 */
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
