export type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'verbose' | 'debug'; /** * Logging interface for the model generation library */ export interface LoggingInterface { debug(message?: unknown, ...optionalParams: unknown[]): void; info(message?: unknown, ...optionalParams: unknown[]): void; warn(message?: unknown, ...optionalParams: unknown[]): void; error(message?: unknown, ...optionalParams: unknown[]): void; } /** * Extended logging interface with additional capabilities */ export interface ExtendedLoggingInterface extends LoggingInterface { verbose(message?: unknown, ...optionalParams: unknown[]): void; startSpinner(text: string): void; updateSpinner(text: string): void; succeedSpinner(text?: string): void; failSpinner(text?: string): void; stopSpinner(): void; json(data: unknown): void; setLevel(level: LogLevel): void; setJsonMode(enabled: boolean): void; setColors(enabled: boolean): void; getLevel(): LogLevel; isJsonMode(): boolean; } /** * Logger class with enhanced capabilities * * Supports log levels, colors, spinners, and JSON output mode. * Acts as a forefront for any external loggers. */ export declare class LoggerClass implements ExtendedLoggingInterface { private logger?; private level; private jsonMode; private colorsEnabled; private spinner; /** * Check if a message at the given level should be logged */ private shouldLog; /** * Format a message with optional color */ private formatMessage; /** * Stop spinner before logging to prevent output overlap */ private pauseSpinner; /** * Resume spinner after logging */ private resumeSpinner; /** * Render the spinner */ private renderSpinner; debug(message?: unknown, ...optionalParams: unknown[]): void; verbose(message?: unknown, ...optionalParams: unknown[]): void; info(message?: unknown, ...optionalParams: unknown[]): void; warn(message?: unknown, ...optionalParams: unknown[]): void; error(message?: unknown, ...optionalParams: unknown[]): void; /** * Start a spinner with the given text */ startSpinner(text: string): void; /** * Update the spinner text */ updateSpinner(text: string): void; /** * Stop the spinner with a success message */ succeedSpinner(text?: string): void; /** * Stop the spinner with a failure message */ failSpinner(text?: string): void; /** * Stop the spinner without a message */ stopSpinner(): void; /** * Output structured JSON data * Only outputs in JSON mode or when explicitly called */ json(data: unknown): void; /** * Set the log level */ setLevel(level: LogLevel): void; /** * Enable or disable JSON mode * In JSON mode, only json() output is shown */ setJsonMode(enabled: boolean): void; /** * Enable or disable colored output */ setColors(enabled: boolean): void; /** * Get the current log level */ getLevel(): LogLevel; /** * Check if JSON mode is enabled */ isJsonMode(): boolean; /** * Sets the logger to use for the model generation library * * @param logger to add */ setLogger(logger?: LoggingInterface): void; /** * Reset the logger to default state. * Useful for testing or when re-initializing the logger. */ reset(): void; } export declare const Logger: LoggerClass;