import { Option } from "./option.js"; import { Result } from "./result.js"; import { TxtEnDecoder } from "./txt-en-decoder.js"; import { CoerceURI } from "./uri.js"; import { FnSerialized, Level, LogSerializable, LogValue, Serialized } from "./types.js"; export declare function asyncLogValue(_val: () => Promise): Promise; export type LogValueArg = LogValue | Serialized | Serialized[] | FnSerialized | undefined | null; export interface LogValueState { readonly state?: Set; readonly ignoreAttr: Option; } export declare function logValue(val: LogValueArg, ctx: LogValueState): LogValue; export interface Sized { size: number; } export interface Lengthed { length: number; } export type SizeOrLength = Sized | Lengthed; export interface LogFormatter { format(attr: LogSerializable): Uint8Array; } export interface LevelHandler { enableLevel(level: Level, ...modules: string[]): void; disableLevel(level: Level, ...modules: string[]): void; setExposeStack(enable?: boolean): void; setIgnoreAttr(re?: RegExp): void; ignoreAttr: Option; isStackExposed: boolean; timerStart(key: string): Date; timerEnd(key: string): { now: Date; duration: number; }; setDebug(...modules: (string | string[])[]): void; isEnabled(ilevel: unknown, module: unknown): boolean; } export type HttpType = Response | Result | Request | Result; export interface LoggerInterface { readonly levelHandler: LevelHandler; TxtEnDe(): TxtEnDecoder; Module(key: string): R; EnableLevel(level: Level, ...modules: string[]): R; DisableLevel(level: Level, ...modules: string[]): R; Attributes(): Record; SetDebug(...modules: (string | string[])[]): R; SetIgnoreAttribute(re?: RegExp): R; SetExposeStack(enable?: boolean): R; SetFormatter(fmt: LogFormatter): R; Ref(key: string, action: { toString: () => string; } | FnSerialized): R; Result(key: string, res: Result): R; Url(url: CoerceURI, key?: string): R; Len(value: unknown, key?: string): R; Hash(value: unknown, key?: string): R; Str>(key: T, value?: T extends string ? string : undefined): R; Uint64>(key: T, value?: T extends string ? number : undefined): R; Int>(key: T, value?: T extends string ? number : undefined): R; Bool>(key: T, value?: T extends string ? unknown : undefined): R; Any>(key: T, value?: T extends string ? unknown : undefined): R; Http(...mix: (HttpType | string)[]): R; Pair(x: Record): R; Error(): R; Warn(): R; Debug(): R; Log(): R; WithLevel(level: Level): R; Err(err: T | Result | Error): R; Info(): R; Timestamp(): R; TimerStart(key: string): R; TimerEnd(key: string): R; Dur(key: string, nsec: number): R; } export declare function IsLogger(obj: unknown): obj is Logger; export interface WithLogger extends LoggerInterface { Logger(): Logger; } export interface AsError { AsError(): Error; ResultError(): Result; } export interface Logger extends LoggerInterface { With(): WithLogger; Msg(...args: string[]): AsError; Flush(): Promise; } //# sourceMappingURL=logger.d.ts.map