///
import type { AsyncLocalStorage } from 'async_hooks';
export declare type Writer = {
write: (message: string) => void;
};
export declare type MessageContext = any;
export declare type RoarrGlobalState = Writer & {
asyncLocalStorage?: AsyncLocalStorage;
sequence: number;
versions: readonly string[];
};
export declare type SprintfArgument = boolean | number | string | null;
export declare type Message = {
readonly context: MessageContext;
readonly message: string;
readonly sequence: string;
readonly time: number;
readonly version: string;
};
export declare type TranslateMessageFunction = (message: Message) => Message;
export declare type LogMethod = {
(context: MessageContext, message: string, c?: SprintfArgument, d?: SprintfArgument, e?: SprintfArgument, f?: SprintfArgument, g?: SprintfArgument, h?: SprintfArgument, i?: SprintfArgument, j?: SprintfArgument): void;
(message: string, b?: SprintfArgument, c?: SprintfArgument, d?: SprintfArgument, e?: SprintfArgument, f?: SprintfArgument, g?: SprintfArgument, h?: SprintfArgument, i?: SprintfArgument, j?: SprintfArgument): void;
};
export declare type Logger = LogMethod & {
adopt: (routine: () => Promise, context: MessageContext) => Promise;
child: (context: MessageContext | TranslateMessageFunction) => Logger;
debug: LogMethod;
error: LogMethod;
fatal: LogMethod;
getContext: () => MessageContext;
info: LogMethod;
trace: LogMethod;
warn: LogMethod;
};
export declare type MessageEventHandler = (message: Message) => void;