import { C8oCore } from "./c8oCore";
import { C8oLogLevel } from "./c8oLogLevel";
export declare class C8oLogger {
    private static LOG_INTERNAL_PREFIX;
    static REMOTE_LOG_LIMIT: number;
    private static JSON_KEY_REMOTE_LOG_LEVEL;
    private static JSON_KEY_TIME;
    private static JSON_KEY_LEVEL;
    private static JSON_KEY_MESSAGE;
    private static JSON_KEY_LOGS;
    private static JSON_KEY_ENV;
    private remoteLogUrl;
    private remoteLogs;
    private alreadyRemoteLogging;
    private remoteLogLevel;
    private uidRemoteLogs;
    private startTimeRemoteLog;
    initDone: boolean;
    private pending_remoteLogs;
    private pending_remoteLogsLevel;
    private c8o;
    private env;
    constructor(c8o: C8oCore, first: boolean);
    affect_val(c8o: C8oCore, first: boolean): void;
    private isLoggableRemote(logLevel);
    private isLoggableConsole(logLevel);
    canLog(logLevel: C8oLogLevel): boolean;
    readonly isFatal: boolean;
    readonly isError: boolean;
    readonly isWarn: boolean;
    readonly isInfo: boolean;
    readonly isDebug: boolean;
    readonly isTrace: boolean;
    private log(logLevel, message, exception);
    fatal(message: string, exceptions?: Error): void;
    error(message: string, exceptions?: Error): void;
    warn(message: string, exceptions?: Error): void;
    info(message: string, exceptions?: Error): void;
    debug(message: string, exceptions?: Error): void;
    trace(message: string, exceptions?: Error): void;
    private _log(logLevel, messages, exceptions?);
    _debug(message: string, exceptions?: Error): void;
    private _trace(message, exceptions?);
    logRemoteInit(): void;
    logRemote(): void;
    logMethodCall(methodName: string, ...parameters: any[]): void;
    logC8oCall(url: string, parameters: any): void;
    logC8oCallJSONResponse(response: JSON, url: string, parameters: any): void;
    logC8oCallXMLResponse(response: Document, url: string, parameters: Object): void;
    logC8oCallResponse(responseStr: string, responseType: string, url: string, parameters: any): void;
}
