type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
interface LogData {
    [key: string]: unknown;
}
type SendData = {
    log: string;
    message: string;
    data: unknown;
};
type SendLogCallback = (data: SendData) => void;
interface LoggerOptions {
    isEnabled?: boolean;
    logLevel?: LogLevel;
    sendLogCallback?: SendLogCallback;
    outputFormat?: 'text' | 'json';
    contextId?: string;
    globalContext?: LogData;
    enableColor?: boolean;
}
export declare class Logger {
    private isEnabled;
    private logLevel;
    private readonly sendLogCallback?;
    private readonly outputFormat;
    private contextId?;
    private globalContext?;
    private readonly enableColor;
    constructor(options?: LoggerOptions);
    setEnabled(enabled: boolean): void;
    setLogLevel(level: LogLevel): void;
    setContextId(contextId: string): void;
    setGlobalContext(globalContext: LogData): void;
    private formatMessage;
    private formatData;
    private shouldLog;
    private sendLog;
    private outputToConsole;
    private log;
    debug(message: string, data?: LogData): void;
    info(message: string, data?: LogData): void;
    warn(message: string, data?: LogData): void;
    error(message: string, data?: LogData): void;
}
export {};
