/// import type { AsyncLocalStorage } from 'async_hooks'; export declare type JsonValue = JsonObject | JsonValue[] | boolean | number | string | null; export declare type JsonObject = { [k: string]: JsonValue; }; export declare type LogWriter = (message: string) => void; export declare type MessageContext = JsonObject & T; export declare type TopLevelAsyncLocalContext = { messageContext: MessageContext; transforms: ReadonlyArray>; }; export declare type NestedAsyncLocalContext = TopLevelAsyncLocalContext & { sequence: number; sequenceRoot: string; }; export declare type AsyncLocalContext = NestedAsyncLocalContext | TopLevelAsyncLocalContext; export declare type MessageSerializer = (message: Message) => string; export declare type RoarrGlobalState = { asyncLocalStorage?: AsyncLocalStorage; sequence: number; serializeMessage?: MessageSerializer; versions: readonly string[]; write: LogWriter; }; export declare type SprintfArgument = boolean | number | string | null; export declare type Message = { readonly context: T; readonly message: string; readonly sequence: string; readonly time: number; readonly version: string; }; export declare type TransformMessageFunction = (message: Message) => Message; export declare type LogMethod = { (context: Z, message: T, c?: T extends `${string}%${string}` ? SprintfArgument : never, d?: SprintfArgument, e?: SprintfArgument, f?: SprintfArgument, g?: SprintfArgument, h?: SprintfArgument, i?: SprintfArgument, j?: SprintfArgument): void; (message: T, b?: T extends `${string}%${string}` ? SprintfArgument : never, c?: SprintfArgument, d?: SprintfArgument, e?: SprintfArgument, f?: SprintfArgument, g?: SprintfArgument, h?: SprintfArgument, i?: SprintfArgument, j?: SprintfArgument): void; }; declare type Child = { (context: TransformMessageFunction>): Logger; (context: MessageContext): Logger; }; export declare type Logger = LogMethod & { adopt: (routine: () => T, context?: MessageContext | TransformMessageFunction) => Promise; child: Child; debug: LogMethod; error: LogMethod; fatal: LogMethod; getContext: () => MessageContext; info: LogMethod; trace: LogMethod; warn: LogMethod; }; export declare type MessageEventHandler = (message: Message) => void; export declare type LogLevelName = 'trace' | 'debug' | 'info' | 'error' | 'fatal' | 'warn'; export {};