import type { LoggerOptions, LogContext } from "./core/types.js";
import { Logger } from "./core/logger.js";
import type { ErrorHandler } from "./core/errors.js";
export interface FileLoggingOptions {
    enabled?: boolean;
    filePath?: string;
    maxFileSize?: number;
    maxFiles?: number;
    format?: "json" | "jsonsl";
    pretty?: boolean;
    bufferSize?: number;
    flushInterval?: number;
}
export interface ErrorLoggingOptions {
    enabled?: boolean;
    filePath?: string;
    maxFileSize?: number;
    maxFiles?: number;
    level?: number;
}
export interface SetupOptions extends LoggerOptions {
    errorHandler?: ErrorHandler;
    setupErrorHandlers?: boolean;
    fileLogging?: FileLoggingOptions;
    errorLogging?: ErrorLoggingOptions;
}
/**
 * Setup logger with advanced features (async)
 */
export declare function setupLogger(options?: SetupOptions): Promise<Logger>;
/**
 * Convenience method for Nuxt plugin
 */
export declare function createNuxtPlugin(context?: LogContext): {
    provide: {
        logger: Logger;
    };
};
/**
 * Create a logger factory that allows dynamic context switching
 * while maintaining global configuration
 */
export declare function createLoggerFactory(globalOptions?: SetupOptions): Promise<(context: LogContext) => Logger>;
export declare function detectLogLevel(): number;
/**
 * Clean up all loggers and resources
 * Should be called when shutting down the application
 */
export declare function cleanupLoggers(): Promise<void>;
/**
 * Utility function for quick file logging
 */
export declare function logToFile(fileName: string, data: any, options?: {
    maxFileSize?: number;
    maxFiles?: number;
    format?: "json" | "jsonsl";
    pretty?: boolean;
}): Promise<void>;
