export type LogMessage = string | (() => string); export type LogLevel = "debug" | "info" | "warn" | "error"; export interface Logger { debug(message: LogMessage): void; info(message: LogMessage): void; warn(message: LogMessage): void; error(message: LogMessage): void; } export interface Formatter { format(level: LogLevel, message: string, time?: Date): string; } export declare class BaseFormatter { private readonly tidToken; protected tid(): string; protected contextString(): string; } export declare class PrettyFormatter extends BaseFormatter implements Formatter { protected colors: Record; protected useColors: boolean; constructor({ useColors }?: { useColors?: boolean | undefined; }); protected label(severity: string): string; format(level: LogLevel, message: string, time?: Date): string; } export declare class PlainFormatter extends BaseFormatter implements Formatter { format(level: LogLevel, message: string, time?: Date): string; } export declare class WithoutTimestampFormatter extends PrettyFormatter { format(level: LogLevel, message: string): string; } export declare class JsonFormatter extends BaseFormatter implements Formatter { format(level: LogLevel, message: string, time?: Date): string; } export declare const Formatters: { Base: typeof BaseFormatter; Pretty: typeof PrettyFormatter; Plain: typeof PlainFormatter; WithoutTimestamp: typeof WithoutTimestampFormatter; JSON: typeof JsonFormatter; }; export declare class SidekiqLogger implements Logger { formatter: Formatter; private readonly base; constructor(base?: Console, formatter?: Formatter); debug(message: LogMessage): void; info(message: LogMessage): void; warn(message: LogMessage): void; error(message: LogMessage): void; private log; } export declare const createLogger: (base?: Console) => Logger; //# sourceMappingURL=logger.d.ts.map