import { IncomingMessage } from "node:http"; import { ConfigOutput, ErrorHandler, Handler, LoadConfigOut, LogLevel, LoggerFactory, LoggerFormatter, LoggerTransport, LoggerTransportWriteArgs, MinimalLogger, Request, WriteArgs } from "./types.js"; /** * Logger */ export declare function LoggerHandler(options?: { formatter: (req: Request) => string; }): Handler; export interface Logger extends MinimalLogger { addTransport(transport: LoggerTransport): void; setLevel(level: LogLevel): void; } export declare class Logger extends EventTarget implements Logger { protected readonly identifier: string; protected level: LogLevel; protected readonly options: { transports: LoggerTransport[]; formatter: LoggerFormatter; }; constructor(identifier: string, level?: LogLevel, options?: { transports?: LoggerTransport[]; formatter?: LoggerFormatter; }); protected write(args: WriteArgs): void; debug(message?: any, ...optionalParams: any[]): void; error(message?: any, ...optionalParams: any[]): void; info(message?: any, ...optionalParams: any[]): void; log(message?: any, ...optionalParams: any[]): void; trace(message?: any, ...optionalParams: any[]): void; warn(message?: any, ...optionalParams: any[]): void; } export declare const FileTransport: (filePath?: string | null, level?: LogLevel) => LoggerTransport; export declare function ConsoleTransport(color?: boolean, level?: LogLevel): { level: LogLevel | undefined; write: ({ level, out }: LoggerTransportWriteArgs) => void; }; export declare const DEFAULT_LOGGER_TRANSPORTS: () => LoggerTransport[]; export declare const DEFAULT_LOGGER_FORMATTER: LoggerFormatter; export declare const LOG_LEVEL_MAP: { none: number; error: number; warn: number; info: number; debug: number; trace: number; }; export declare const LoggerEvents: { error: string; }; export declare function getLogger(identifier: string, options?: { formatter?: LoggerFormatter; transports?: LoggerTransport[]; }, useCache?: boolean): Logger; export declare function setLoggerFactory(factory: LoggerFactory): LoggerFactory; export declare function getLoggerFactory(): LoggerFactory; export declare function routerDefaultLoggerFactory(uuid: string, req: IncomingMessage): Logger; /** * Error */ export declare class BadRequestError extends Error { constructor(message?: string); } export declare class ConfigFileNotFoundError extends Error { constructor(message?: string); } export declare class ForbiddenError extends Error { constructor(message?: string); } export declare class NotFoundError extends Error { constructor(message?: string); } export declare class MethodNotImplementedError extends Error { constructor(message?: string); } export declare class UnAuthorizedError extends Error { constructor(message?: string); } export declare const HTML_HEADERS: { "Content-Type": string; }; export declare const STATUS: { ERROR: number; BAD_REQUEST: number; NOT_FOUND: number; NOT_IMPLEMENTED: number; FORBIDDEN: number; UNAUTHORIZED: number; }; export declare function defaultAppErrorHandler(): ErrorHandler; /** * config loading */ export declare abstract class ConfigPathResolver { static getSequelizeRCFilePath(): string; static getConfigDirname(): string; static getBaseDirname(): string; } export declare const checkEnvVariables: (requiredEnvVariables: string[], defaults?: string[]) => string[]; export declare const checkEnvVariable: (envName: string, defaults?: string) => string; export declare const getEnvVariable: (envName: string, defaults?: string) => string | undefined; export declare const isFeatureEnabled: (feature: string, defaults?: boolean) => boolean; export declare const loadConfigString: (envFileContent: string, combined?: ConfigOutput) => ConfigOutput; export declare const loadConfigFile: (envFilePath: string, combined?: ConfigOutput, logger?: Logger) => ConfigOutput; export declare const loadConfig: (configDirname?: string, logger?: Logger) => LoadConfigOut;