export type LogLevel = "debug" | "info" | "warn" | "error";
export type LogMessage = string;
export interface LogDetails {
    [key: string]: any;
}
export type LogHandler = (level: LogLevel, message: LogMessage, details?: LogDetails) => void;
export interface CreateLoggerOptions {
    levels?: LogLevel[];
    handler?: LogHandler;
}
export declare const loggerPrefix = "[Featurevisor]";
export declare const defaultLogLevels: LogLevel[];
export declare const defaultLogHandler: LogHandler;
export declare class Logger {
    private levels;
    private handle;
    constructor(options: CreateLoggerOptions);
    setLevels(levels: LogLevel[]): void;
    log(level: LogLevel, message: LogMessage, details?: LogDetails): void;
    debug(message: LogMessage, details?: LogDetails): void;
    info(message: LogMessage, details?: LogDetails): void;
    warn(message: LogMessage, details?: LogDetails): void;
    error(message: LogMessage, details?: LogDetails): void;
}
export declare function createLogger(options?: CreateLoggerOptions): Logger;
