import { LogLevel } from "@tsed/logger";
export interface RequestLoggerOptions {
    id: string;
    dateStart: Date;
    url: string;
    ignoreUrlPatterns?: any[];
    level?: "debug" | "info" | "warn" | "error" | "off" | "all";
    maxStackSize?: number;
    minimalRequestPicker?: (o: any) => any;
    completeRequestPicker?: (o: any) => any;
}
export declare class RequestLogger {
    private logger;
    readonly id: string;
    readonly url: string;
    readonly dateStart: Date;
    maxStackSize: number;
    minimalRequestPicker: Function;
    completeRequestPicker: Function;
    private readonly ignoreUrlPatterns;
    private stack;
    private level;
    constructor(logger: any, { id, dateStart, url, ignoreUrlPatterns, minimalRequestPicker, completeRequestPicker, level, maxStackSize }: RequestLoggerOptions);
    info(obj: any): void;
    debug(obj: any, withRequest?: boolean): void;
    warn(obj: any): void;
    error(obj: any): void;
    trace(obj: any): void;
    flush(): void;
    isLevelEnabled(otherLevel: string | LogLevel): boolean;
    destroy(): void;
    /**
     * Return the duration between the time when LogIncomingRequest has handle the request and now.
     * @returns {number}
     */
    protected getDuration(): number;
    protected getData(obj: any): any;
    protected run(level: LogLevel, cb: Function): void;
}
