import { ILogArgvType, ILogArgvTypeWithError, ILogger, IPicGo } from '../types';
export declare class Logger implements ILogger {
    private readonly level;
    private readonly ctx;
    private readonly consoleOutput;
    private readonly respectSilent;
    private logLevel;
    private logPath;
    private logPathOverride?;
    constructor(ctx: IPicGo, options?: {
        /** Whether to output to console. Defaults to true. */
        consoleOutput?: boolean;
        /**
         * Whether to obey the global `silent` config.
         * - true (default): when `silent` is enabled, both console output and file writes are suppressed.
         * - false: file writes always happen regardless of `silent`, useful for audit/diagnostic logs
         *   that must not be lost even in silent mode.
         */
        respectSilent?: boolean;
        /** Override the log file path. Defaults to `settings.logPath` or `ctx.baseDir/picgo.log`. */
        logPath?: string;
    });
    private handleLog;
    private checkLogFileIsLarge;
    private recreateLogFile;
    private handleWriteLog;
    private checkLogLevel;
    success(...msg: ILogArgvType[]): void;
    info(...msg: ILogArgvType[]): void;
    error(...msg: ILogArgvTypeWithError[]): void;
    warn(...msg: ILogArgvType[]): void;
    debug(...msg: ILogArgvType[]): void;
    createLogger(options?: {
        /** Override the log file path. */
        logPath?: string;
        /** Whether to output to console. Defaults to true. */
        consoleOutput?: boolean;
        /**
         * Whether to obey the global `silent` config.
         * - true (default): silent mode suppresses both console and file output.
         * - false: file writes always happen, useful for audit/diagnostic logs.
         */
        respectSilent?: boolean;
    }): Logger;
}
export default Logger;
