import { ISettingsParam } from "tslog";
export declare const STACKTRACE_KEY = "stack";
export declare const SUBJECT_KEY = "x-subject";
export declare const TRACING_KEY = "x-tracing";
export declare const LOGGER_GROUP_KEY = "x-logger-group";
export declare const SERVICE_KEY = "x-service";
export declare const LOGGER_LEVEL_ENV = "LOGGER_LEVEL";
export declare enum Level {
    Debug = 0,
    Info = 3,
    Warn = 4,
    Error = 5,
    Fatal = 6
}
export type LoggerInterface = {
    getChildLogger(name?: string): LoggerInterface;
    withError(err: unknown): LoggerInterface;
    with(args: Record<string, unknown>): LoggerInterface;
};
export type LoggerSettings<T> = Partial<ISettingsParam<T>> & {
    level: string;
    name?: string;
    service?: string;
    tracingId?: string;
    subject?: string;
};
export interface IErrorObject {
    /** Name of the error*/
    name: string;
    /** Error message */
    message: string;
    /** native Error object */
    nativeError: Error;
    /** Stack trace of the error */
    [STACKTRACE_KEY]?: string;
}
