import { Context } from 'aws-lambda'; import Pino from 'pino'; import { AnyEvent } from './events/anyEvent'; import { TimeoutLogger } from './timeout'; export { withLambdaLogger, WithLambdaLoggerOptions, HandlerWithLogger, LoggerFactory, ContextWithLogger, } from './withLambdaLogger'; export interface HttpResponseContext { status?: number; error?: Error; body?: any; elapsedMs?: number; } export interface HttpRequestContext { url?: string; method?: string; body?: any; } export interface Contexts { withHttpRequest(context: HttpRequestContext): Logger; withHttpResponse(context: HttpResponseContext): Logger; withData(data: object): Logger; withContext(data: object): Logger; } export interface LoggerOptions { stream?: Pino.DestinationStream; level?: string; service?: string; redact?: string[] | Pino.redactOptions; timeoutAfterMs?: number; } export declare function empty(options?: LoggerOptions): Logger; export declare function fromContext(event: AnyEvent, context: Context, options?: LoggerOptions): Logger; export interface ErrorRecorder { recordError(e: any, msg?: string): void; recordErrorAsWarning(e: any, msg?: string): void; } export declare type Logger = Pino.Logger & Contexts & ErrorRecorder & TimeoutLogger;