import { ObjectType } from '../index';
declare global {
    let log4javascript: any;
    interface Window {
        log4javascript: any;
    }
}
export interface Logger {
    trace(...logArgs: any[]): void;
    debug(...logArgs: any[]): void;
    info(...logArgs: any[]): void;
    warn(...logArgs: any[]): void;
    error(...logArgs: any[]): void;
    fatal(...logArgs: any[]): void;
    isEnabledFor(): boolean;
    isTraceEnabled(): boolean;
    isDebugEnabled(): boolean;
    isInfoEnabled(): boolean;
    isWarnEnabled(): boolean;
    isErrorEnabled(): boolean;
    isFatalEnabled(): boolean;
    addAppender?(appender: LogAppender): any;
    removeAppender?(appender: LogAppender): any;
}
export declare enum LogLevel {
    TRACE = "trace",
    DEBUG = "debug",
    INFO = "info",
    WARN = "warn",
    ERROR = "error",
    FATAL = "fatal"
}
export interface LoggingOptions {
    enabled?: boolean;
    showPopup?: boolean;
    resourceUrl?: string;
}
export interface LogAppender {
    append(loggingEvent: LoggingEvent): any;
}
export interface LoggingEvent {
    logger: Logger;
    timeStamp: Date;
    timeStampInMilliseconds: number;
    timeStampInSeconds: number;
    milliseconds: number;
    level: LogLevel;
    messages: string[];
    exception: any[];
    getThrowableStrRep(): string;
    getCombinedMessages(): string;
    toString(): string;
}
export declare const logging: {
    /** @internal */
    _appendersToAdd: {
        factoryName: string | (new (model?: object) => any);
        options?: object;
    }[];
    DEFAULT_LEVEL: LogLevel;
    initialized: boolean;
    showStackTraces: boolean;
    /***
     * Loads log4javascript.min.js if logging is enabled.
     */
    bootstrap(options?: LoggingOptions): JQuery.Promise<JQuery>;
    initLog4Javascript(logLevel?: string, showPopup?: boolean): void;
    parseLevel(level: string): LogLevel;
    addAppender(factoryName: ObjectType<any>, options?: object): void;
};
//# sourceMappingURL=logging.d.ts.map