import { CommonLogger } from '@goatlab/js-utils'; import type { NextFunction, Request, Response } from 'express'; /** * Optional function to extract a log prefix from the request. * Useful for multi-tenant apps to prepend tenant ID to log lines. */ export type RequestLogPrefixFn = (req: Request) => string | undefined; /** * Options for the Express request logger. */ export interface RequestLoggerOptions { /** * Paths to suppress from request logs (e.g. health checks). * Only suppresses successful (< 400) responses on these paths. * @example ['/livez', '/readyz', '/health'] */ suppressedPaths?: string[]; /** * Extract trace context from the request for structured logging. * Returns trace/span IDs for Cloud Logging correlation. */ getTraceContext?: (req: Request) => { traceId?: string; spanId?: string; }; } export declare const httpResponseCodeColor: (statusCode: number) => string; export declare const httpResponseTimeColor: (msTime: number) => string; export declare const getActualRequestDurationInMilliseconds: (start: [number, number]) => number; export declare const getCurrentTimeFormatted: () => string; export declare const expressRequestLogger: (request: Request, response: Response, next: NextFunction, logger: CommonLogger, getLogPrefix?: RequestLogPrefixFn, options?: RequestLoggerOptions) => void;