type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "silent"; type PlaceholderValue = string | (() => string); type Placeholders = Record; type LogMethod = (...args: unknown[]) => void; type LoggerConfig = { level: LogLevel; prefixEnabled: boolean; prefixFormat: string; placeholders: Placeholders; }; type LoggerConfigPatch = { level?: LogLevel | null; prefixEnabled?: boolean | null; prefixFormat?: string | null; placeholders?: Record | null; }; type LoggerConfigOverrides = Partial; /** @deprecated Compatibility alias only. Prefer LoggerConfigOverrides for read-side overrides in new code. */ type PerLoggerConfig = LoggerConfigOverrides; type FormattedLogger = { trace: LogMethod; debug: LogMethod; info: LogMethod; warn: LogMethod; error: LogMethod; }; type Logger = { readonly name: string; format: (template: string) => FormattedLogger; trace: LogMethod; debug: LogMethod; info: LogMethod; warn: LogMethod; error: LogMethod; }; /** * デフォルト設定関数 */ declare function setDefaultConfig(patch: LoggerConfigPatch): void; /** * ロガー設定関数 */ declare function setLoggerConfig(name: string, patch: LoggerConfigPatch): void; /** * ユーティリティ関数 */ declare function setLogLevel(level: LogLevel): void; declare function setLoggerLevel(name: string, level: LogLevel): void; /** * ロガー取得関数 */ declare function getLogger(name: string): Logger; /** * 参照用関数 */ declare function getDefaultConfig(): Readonly; declare function getLoggerOverrides(name: string): Readonly; declare function getEffectiveLoggerConfig(name: string): Readonly; declare function getLibraryDefaults(): Readonly; /** * エクスポート */ export { getDefaultConfig, getEffectiveLoggerConfig, getLibraryDefaults, getLogger, getLoggerOverrides, setDefaultConfig, setLogLevel, setLoggerConfig, setLoggerLevel, }; export type { FormattedLogger, LogLevel, LoggerConfig, LoggerConfigOverrides, LoggerConfigPatch, Logger, PerLoggerConfig, PlaceholderValue, Placeholders, };