export interface ErrorMeta {
    error: {
        kind: string;
        message: string;
        stack?: string;
    };
}
export type LogLevel = "debug" | "info" | "warn" | "error";
export interface Logger {
    debug: (...messages: unknown[]) => void;
    info: (...messages: unknown[]) => void;
    warn: (...messages: unknown[]) => void;
    error: (message: string, meta?: ErrorMeta) => void;
}
export interface LogEntry {
    level: LogLevel;
    messages: unknown[];
    meta?: ErrorMeta;
    timestamp: number;
}
export type LogListener = (entry: LogEntry) => void;
export declare function registerLogListener(listener: LogListener): () => void;
export declare function setDefaultLogger(logger: Logger): void;
export declare function getLogger(): Logger;
/**
 * Extracts error metadata from an error, sanitizing secrets.
 * Preserves full stack traces and debugging info for troubleshooting.
 */
export declare function getErrorMeta(error: unknown): ErrorMeta;
/**
 * Creates a logger with automatic prefix application.
 *
 * @param prefix - Prefix to prepend to all log messages
 * @param verbose - If false, debug logs are suppressed (default: true)
 * @returns Logger instance with prefix baked in
 */
export declare function getPrefixedLogger(prefix: string, verbose?: boolean): Logger;
//# sourceMappingURL=logger.d.ts.map