import { LogLevel as LogLevel3, Logger as Logger3, LogContext as LogContext2, LoggerFactory as LoggerFactory2 } from "@agentxjs/types";
import { Logger, LogContext, LogLevel } from "@agentxjs/types";
interface ConsoleLoggerOptions {
	level?: LogLevel;
	colors?: boolean;
	timestamps?: boolean;
}
declare class ConsoleLogger implements Logger {
	readonly name: string;
	readonly level: LogLevel;
	private readonly colors;
	private readonly timestamps;
	private static readonly COLORS;
	constructor(name: string, options?: ConsoleLoggerOptions);
	debug(message: string, context?: LogContext): void;
	info(message: string, context?: LogContext): void;
	warn(message: string, context?: LogContext): void;
	error(message: string | Error, context?: LogContext): void;
	isDebugEnabled(): boolean;
	isInfoEnabled(): boolean;
	isWarnEnabled(): boolean;
	isErrorEnabled(): boolean;
	private getLevelValue;
	private log;
	private getConsoleMethod;
	private isNodeEnvironment;
}
import { Logger as Logger2, LoggerFactory, LogLevel as LogLevel2 } from "@agentxjs/types";
interface LoggerFactoryConfig {
	defaultImplementation?: (name: string) => Logger2;
	defaultLevel?: LogLevel2;
	consoleOptions?: Omit<ConsoleLoggerOptions, "level">;
}
/**
* Internal LoggerFactory implementation
*
* Uses lazy proxy pattern to allow module-level createLogger() calls.
*/
declare class LoggerFactoryImpl {
	private static loggers;
	private static config;
	static getLogger(nameOrClass: string | (new (...args: unknown[]) => unknown)): Logger2;
	static configure(config: LoggerFactoryConfig): void;
	static reset(): void;
	private static createLazyLogger;
	private static createLogger;
}
/**
* Set external LoggerFactory (called by Runtime initialization)
*/
declare function setLoggerFactory(factory: LoggerFactory): void;
/**
* Create a logger instance
*
* Safe to call at module level before Runtime is configured.
* Uses lazy initialization - actual logger is created on first use.
*
* @param name - Logger name (hierarchical, e.g., "engine/AgentEngine")
* @returns Logger instance (lazy proxy)
*/
declare function createLogger(name: string): Logger2;
export { setLoggerFactory, createLogger, LoggerFactoryImpl, LoggerFactoryConfig, LoggerFactory2 as LoggerFactory, Logger3 as Logger, LogLevel3 as LogLevel, LogContext2 as LogContext, ConsoleLoggerOptions, ConsoleLogger };
