import { OperatorFunction, Observable } from 'rxjs'; import { BasicLogger } from './basicLogger'; import { TagNotification } from '../notifications'; export declare type LogNotification = TagNotification | 'audit'; export interface ILogTextParams { prefix: string; tags?: unknown[]; suffix?: unknown[]; } export declare type LogOn = Array>; export interface ILogStreamParamsCore extends ILogTextParams { on?: LogOn; project?: (stream: Observable) => Observable; logger?: BasicLogger; } export declare type LogTextParamsMap = Partial>; export declare type LogStreamParams = ILogStreamParamsCore & LogTextParamsMap; export declare type LogEventsArg = LogStreamParams | string; export declare function logEventsParams(arg: LogEventsArg, defaultLogger?: Readonly<{ log: (message?: unknown, ...parameters: unknown[]) => void; warn: (message?: unknown, ...parameters: unknown[]) => void; error: (message?: unknown, ...parameters: unknown[]) => void; }>): LogStreamParams & { logger: BasicLogger; }; export declare function logEvents(paramsRaw: LogEventsArg): OperatorFunction; export declare type LogEventsOperator = (paramsRaw: LogEventsArg) => OperatorFunction; export declare function createTaggedLogEvents(tags: unknown[], logger?: Readonly<{ log: (message?: unknown, ...parameters: unknown[]) => void; warn: (message?: unknown, ...parameters: unknown[]) => void; error: (message?: unknown, ...parameters: unknown[]) => void; }>): { (paramsRaw: LogEventsArg): OperatorFunction; withTags(...extraTags: unknown[]): any; }; export declare type TaggedLogEventsOperator = ReturnType;