export type LogLevel = "debug" | "info" | "warn" | "error" | "silent"; interface LogWriter { write(chunk: string): void; } export declare function getLogFilePath(): string; export declare function writeToLogFile(chunk: string | Buffer): void; export interface Logger { debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; error(message: string, ...args: any[]): void; } export declare class WingmanLogger implements Logger { private level; private output; constructor(level?: LogLevel, output?: LogWriter); private shouldLog; private log; debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; error(message: string, ...args: any[]): void; } export declare class SilentLogger implements Logger { debug(): void; info(): void; warn(): void; error(): void; } export declare function createLogger(level?: LogLevel): Logger; export interface SerializableLoggerConfig { level: LogLevel; } export declare function createLoggerFromConfig(config: SerializableLoggerConfig): Logger; export type LogEventCallback = (event: { level: LogLevel; message: string; timestamp: string; args?: any[]; }) => void; export declare class EventLogger implements Logger { private callback; private level; private secondaryLogger?; constructor(callback: LogEventCallback, level?: LogLevel, secondaryLogger?: Logger | undefined); private shouldLog; private log; debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; error(message: string, ...args: any[]): void; } export declare function createEventLogger(callback: LogEventCallback, level?: LogLevel): Logger; export {};