import Signal, { Req } from "badmfck-signal"; import { BaseService } from "./BaseService"; export declare enum LOG_LEVEL { ALL = 10, API = 19, INFO = 20, DB = 25, WARN = 30, ERROR = 40, CRIT = 50 } export interface ILogItem { id: number; level: LOG_LEVEL; time: number; text: string; date: string; source: string; repeat: number; } export interface ILogServiceOptions { output?: (data: ILogItem) => void; stackSize: number; level: LOG_LEVEL; textLimit: number; watchFor?: string[]; } export declare const getDefaultLogOptions: () => ILogServiceOptions; export declare const logInfo: (message: any, ...optional: any[]) => void; export declare const logWarn: (message: any, ...optional: any[]) => void; export declare const logCrit: (message: any, ...optional: any[]) => void; export declare const logError: (message: any, ...optional: any[]) => void; export declare const logDB: (message: any, ...optional: any[]) => void; export declare const logAPI: (message: any, ...optional: any[]) => void; export declare const S_LOG: Signal<{ level: LOG_LEVEL; data: any[]; }>; export declare const S_LOG_CREATED: Signal; export declare const S_LOG_CHANGE_LEVEL: Signal; export declare const REQ_CURRENT_LOG_LEVEL: Req; export declare const S_LOG_FLUSH: Signal; export declare const S_LOG_ADD_SERVICE_TO_WATCH: Signal; export declare const S_LOG_REMOVE_SERVICE_FROM_WATCH: Signal; export declare const S_LOG_SET_TEXT_LIMIT: Signal; export declare const REQ_LOG: Req<{ lastID: number; } | null | undefined, ILogItem[]>; export declare const REQ_LOG_UNIQUE_SERVICES: Req; export declare class LogService extends BaseService { static nextID: number; log: ILogItem[]; options: ILogServiceOptions; level: LOG_LEVEL; uniqueServices: Map; constructor(opt?: ILogServiceOptions); init(): Promise; checkTextLimit(): void; createDate(d?: Date): string; leadZero(num: number): string; createText(data: any, level: LOG_LEVEL): string; private static readonly SANITIZERS; private static readonly SENSITIVE_KEY_RE; static sanitize(text: string): string; private static readonly PAN_CANDIDATE_REGEX; private static isLuhnValid; static sanitizeDeep(value: any, depth?: number): any; private static readonly CARD_IIN_RE; private static readonly AGGRESSIVE_PAN_MASKING; private static looksLikePAN; static maskPAN(text: string): string; }