import { LogEventsArg, TaggedLogEventsOperator } from './logEvents'; import { BasicLogger } from './basicLogger'; export declare function createLogger(basicLogger?: Readonly<{ log: (message?: unknown, ...parameters: unknown[]) => void; warn: (message?: unknown, ...parameters: unknown[]) => void; error: (message?: unknown, ...parameters: unknown[]) => void; }>): Readonly<{ logEvents: (arg: LogEventsArg) => import("rxjs").OperatorFunction; log: (message?: unknown, ...parameters: unknown[]) => void; warn: (message?: unknown, ...parameters: unknown[]) => void; error: (message?: unknown, ...parameters: unknown[]) => void; }>; export declare function createNoOpLogger(): Logger; export declare const defaultLogger: Readonly<{ logEvents: (arg: LogEventsArg) => import("rxjs").OperatorFunction; log: (message?: unknown, ...parameters: unknown[]) => void; warn: (message?: unknown, ...parameters: unknown[]) => void; error: (message?: unknown, ...parameters: unknown[]) => void; }>; export declare type Logger = ReturnType; export declare type LogArgs = Parameters; export declare type TaggedLogger = Logger & Readonly<{ logEvents: TaggedLogEventsOperator; withTags: (...tags: unknown[]) => TaggedLogger; parent: BasicLogger; }>; export declare function createTaggedLogger(tags: unknown[], parent?: BasicLogger): TaggedLogger; export declare function createNoOpTaggedLogger(): TaggedLogger;