import { LOG_LEVEL } from "../constants"; export type LogObject = ErrorLog | InfoLog | DebugLog; export interface LogObjectData { logId: string; userId?: string; level: LOG_LEVEL; action: string; message?: any; payload?: any; metadata?: any; } export declare abstract class BaseLog { logId: string; userId: string; level: LOG_LEVEL; action: string; message?: any; payload?: any; metadata?: any; constructor(data: Omit); abstract toJSON(): Record; } export declare class ErrorLog extends BaseLog { constructor(data: Omit); toJSON(): { logId: string; userId: string; level: LOG_LEVEL; action: string; message: any; metadata: any; payload: any; }; } export declare class FatalLog extends BaseLog { constructor(data: Omit); toJSON(): { logId: string; userId: string; level: LOG_LEVEL; action: string; message: any; metadata: any; payload: any; }; } export declare class InfoLog extends BaseLog { constructor(data: Omit); toJSON(): { logId: string; userId: string; level: LOG_LEVEL; action: string; message: any; metadata: any; payload: any; }; } export declare class DebugLog extends BaseLog { parentLogId?: string; parentLogType?: LOG_LEVEL; constructor(data: Omit & { parentLogId?: string; parentLogType?: LOG_LEVEL; }); toJSON(): { logId: string; userId: string; level: LOG_LEVEL; action: string; message: any; metadata: any; payload: any; parentLogId: string; parentLogType: LOG_LEVEL; }; }